【问题标题】:JPA: Configuring WildFly 8.x JTA data-source with EclipseLink and Microsoft's SQLServer DatabaseJPA:使用 EclipseLink 和 Microsoft 的 SQLServer 数据库配置 WildFly 8.x JTA 数据源
【发布时间】:2021-06-02 05:19:07
【问题描述】:

如何正确配置 WildFly 8.x JTA 数据源以便将 JPA 与 EclipseLink 和 Microsoft 的 SQLServer 数据库一起使用?

【问题讨论】:

    标签: sql-server jpa wildfly eclipselink jta


    【解决方案1】:

    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

    5- 创建文件夹[JBOSS_HOME]\modules\org\eclipse\persistence\main

    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.jarjipijapa_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

    3- 从Maven 下载SqlJdbc4 jar:

    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>4.0</version>
    </dependency>
    

    4- 将其重命名为sqljdbc4.jar

    5- 创建文件夹[JBOSS_HOME]\modules\com\microsoft\main

    6- 在同一文件夹中创建module.xml 并将以下内容粘贴到其中:

    <?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>
    

    7- 将mssql.jarsqljdbc4.jar 复制到同一个文件夹中。

    8- 通过添加以下数据源编辑[JBOSS_HOME]\standalone\configuration\standalone.xml(搜索&lt;datasources&gt; 标签并将以下数据源插入其中):

    <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,添加如下驱动(搜索&lt;datasources&gt;标签,你会发现里面有&lt;drivers&gt;标签,插入如下驱动):

    <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”中的以下值:HostNameDBNameusernamepasswordjava:jboss/MyDS、@ 987654361@.

    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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-24
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2021-01-30
      • 2017-07-08
      相关资源
      最近更新 更多