在JBoss中配置JPA数据源时出错
我编写了一个keydove的用户存储提供程序SPI,其中包含对我的Oracle数据库(用户信息所在位置)的裸JDBC查询 现在我正试图用JPA实现查询,但当我将SPI部署到KeyClope的JBoss服务器时,我收到一个错误,抱怨数据源:在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
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文件
<?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
<?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
配置数据源的正确方法是什么?
谢谢