如何正确配置Wildfly8.x JTA数据源,以便在EclipseLink和Microsoft的SQLServer数据库中使用JPA?
A:用WildFly配置EclipseLink
1-从Maven下载eclipselink
jar:
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.2</version>
</dependency>
2-将其重命名为eclipselink.jar
。
3-从Maven下载Jipijapa EclipseLink Integration
jar:
<dependency>
<groupId>org.jipijapa</groupId>
<artifactId>jipijapa-eclipselink</artifactId>
<version>1.0.1.Final</version>
</dependency>
4-将其重命名为jipijapa_eclipselink.jar
。
6-在同一个文件夹中创建module.xml
,并将以下内容粘贴到其中:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.eclipse.persistence">
<resources>
<resource-root path="eclipselink.jar" />
<resource-root path="jipijapa_eclipselink.jar" />
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.persistence.api" />
<module name="javax.transaction.api" />
<module name="javax.validation.api" />
<module name="javax.xml.bind.api" />
<module name="org.antlr" />
<module name="org.apache.commons.collections" />
<module name="org.dom4j" />
<module name="org.javassist" />
<module name="org.jboss.logging" />
<module name="javax.ws.rs.api"/>
</dependencies>
</module>
7-将eclipselink.jar
和jipijapa_eclipselink.jar
复制到同一个文件夹中。
B:用WildFly配置MSSQL
1-从Maven下载MSSQL JDBC
jar:
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.5.2.jre8</version>
<scope>test</scope>
</dependency>
2-将其重命名为mssql.jar
。
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.microsoft">
<resources>
<resource-root path="sqljdbc4.jar"/>
<resource-root path="mssql.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
8-编辑[JBOSS_HOME]\standalone\configuration\standalone.xml
,方法是添加以下数据源(搜索
标记并将以下数据源插入其中):
<datasource jta="true" jndi-name="java:jboss/MyDS" pool-name="MyDS" enabled="true" use-ccm="true">
<connection-url>jdbc:sqlserver://localhost:1433;databaseName=DBName</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<driver>sqlserver</driver>
<security>
<user-name>username</user-name>
<password>password</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<timeout>
<set-tx-query-timeout>false</set-tx-query-timeout>
<blocking-timeout-millis>0</blocking-timeout-millis>
<idle-timeout-minutes>0</idle-timeout-minutes>
<query-timeout>0</query-timeout>
<use-try-lock>0</use-try-lock>
<allocation-retry>0</allocation-retry>
<allocation-retry-wait-millis>0</allocation-retry-wait-millis>
</timeout>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
9-通过添加以下驱动程序编辑[JBOSS_HOME]\standalone\configuration\standalone.xml
(搜索
标记,您将在其中找到
标记,并将以下驱动程序插入其中):
<driver name="sqlserver" module="com.microsoft">
<xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
</driver>
10-将以下持久性单元添加到persistence.xml
文件中:
<persistence-unit name="my-persistence-unit" transaction-type="JTA">
<description>My Persistence Unit</description>
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:jboss/MyDS</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create" />
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.target-database" value="org.eclipse.persistence.platform.database.PostgreSQLPlatform" />
</properties>
</persistence-unit>
11-不要忘记根据您的首选项更改以上步骤“8”和“10”中的以下值:主机名
、dbname
、username
、password
、java:jboss/myds
、my-persistence-unit
。
12-您不必对pom.xml
文件进行任何更改,以下是我的文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jpa</groupId>
<artifactId>JPATest</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<finalName>JPATest</finalName>
</build>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</dependencyManagement>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
我被要求将大型独立Swing应用程序的数据库连接JAR从Eclipselink JPA 2.0迁移到Eclipselink JPA 3.0实现。 我看到一个很大的不同:Eclipselink 3.0使用雅加达。现在我所要做的就是连接到数据库,但到目前为止我一直没有成功,我不知道为什么。这是我的测试课: 当我运行这个时,我得到了这个异常。 异常告诉我我的persistence.xml或我正在使用的j
问题内容: 我实现了一个使用Oracle DB的Web应用程序(JEE6,EJB WebProfile)。我的问题是,我需要更改使用的数据库架构(名称),而无需重新编译/重新打包应用程序。因此,我想要的(这只是一个主意,也许有人有更好的主意),是在服务器内进行一些配置(JNDI),具体说明架构名称。但是,如何配置Eclipse Link在运行时使用其他模式名称? 细节: 目前,我使用该文件指定架构
问题内容: 我有一个需要配置基于Spring的应用程序以与两个数据库一起使用的要求。我们有两个数据库,一个用于保存实时数据,另一个数据库用作数据仓库,并包含存档的数据(其结构与实时数据库完全相同)。 为简单起见,假设存在搜索产品的请求。应用程序应该做的是在实时数据库中搜索产品详细信息,如果找不到,它将检查存档数据库。 如果需要配置这样的设置,是否仍需要配置数据源,搜索代码是否必须使用第一个数据源来
尝试基于以下内容设置应用程序时出错:SPRING-DATA-JPA, GWT项目。尝试在托管模式下运行时出现异常: 嵌套在org.springframework.beans.factory.BeanCreationException:创建名称为org.springframework.dao.annotation.的bean时出错:bean初始化失败;嵌套异常是org.springframework
新建数据库 在本地新建一个数据库 demo 打开common/config/main-local.php 修改数据库配置 'components' => [ ... 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbna
因为 Canal 是模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议,所以需要 MySql 开启 binlog 修改 mysql.cnf 中的配置 [mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置