在JBoss中配置JPA数据源时出错

在JBoss中配置JPA数据源时出错,jpa,jboss,datasource,keycloak,Jpa,Jboss,Datasource,Keycloak,我编写了一个keydove的用户存储提供程序SPI,其中包含对我的Oracle数据库(用户信息所在位置)的裸JDBC查询 现在我正试图用JPA实现查询,但当我将SPI部署到KeyClope的JBoss服务器时,我收到一个错误,抱怨数据源: 13:08:35,829 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("fu

我编写了一个keydove的用户存储提供程序SPI,其中包含对我的Oracle数据库(用户信息所在位置)的裸JDBC查询

现在我正试图用JPA实现查询,但当我将SPI部署到KeyClope的JBoss服务器时,我收到一个错误,抱怨数据源:

13:08:35,829 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 1) WFLYCTL0013: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {

"WFLYCTL0412: Required services that are not installed:" => ["jboss.naming.context.java.jboss.datasources.MyappDS"],

"WFLYCTL0180: Services with missing/unavailable dependencies" => [

"jboss.persistenceunit.\"keycloak_myapp_ext_ear-0.0.1-SNAPSHOT.ear/keycloak_myapp_ext-0.0.1-SNAPSHOT.jar#myapp-db-jpa\" is missing [jboss.naming.context.java.jboss.datasources.MyappDS]",

"jboss.persistenceunit.\"keycloak_myapp_ext_ear-0.0.1-SNAPSHOT.ear/keycloak_myapp_ext-0.0.1-SNAPSHOT.jar#myapp-db-jpa\".__FIRST_PHASE__ is missing [jboss.naming.context.java.jboss.datasources.MyappDS]"
]
}
我的项目如下所示:

  • 一个用SPI的所有逻辑构建jar文件的项目
  • 一个项目使用以前的jar文件、ojdbc-14.jar文件和一些xml文件构建ear文件
第一个项目在src/main/resources/META-INF中包含一个persistence.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
             xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="
        http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
        
        
    <persistence-unit name="myapp-db-jpa">
        <jta-data-source>java:jboss/datasources/MyappDS</jta-data-source>

        <class>com.mycomp.myapp.keycloak_myapp_ext.jpa.entities.UsuarioEntity</class>

        <properties>
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="false" />
        </properties>
    </persistence-unit>
</persistence>

java:jboss/datasources/MyappDS
com.mycop.myapp.keydove\u myapp\u ext.jpa.entities.UsuarioEntity
第二个项目在src/main/application/lib/ojdbc中包含这三个文件:

  • module.xml
  • ojdbc-14.jar
  • standalone.xml
module.xml的内容是:

<?xml version="1.0" ?>
<module xmlns="urn:jboss:module:1.3" name="ojdbc">

    <resources>
        <resource-root path="ojdbc-14.jar"/>
    </resources>

    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>

</module>

standalone.xml的内容很长,但这是我在下面添加的内容

<subsystem xmlns="urn:jboss:domain:datasources:5.0">
        <datasources>

standalone.xml:

            <xa-datasource jndi-name="java:jboss/datasources/MyappDS" pool-name="OracleDS" enabled="true" use-java-context="true" >
                <connection-url>jdbc:oracle:thin:@195.154.55.157:1521/DBNAME</connection-url>
                <driver>oracleDriver</driver>
                <xa-pool>
                    <min-pool-size>1</min-pool-size>
                    <max-pool-size>5</max-pool-size>
                    <prefill>true</prefill>
                </xa-pool>
                <security>
                    <user-name>USER</user-name>
                    <password>PASSWORD</password>
                </security>
            </xa-datasource>
        
            <drivers>
                <driver name="oracleDriver" module="ojdbc">
                    <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class>
                </driver>
            </drivers>

jdbc:oracle:thin:@195.154.55.157:1521/DBNAME
oracleDriver
1.
5.
真的
使用者
密码
oracle.jdbc.xa.client.oraclexadasource
配置数据源的正确方法是什么? 谢谢