WildFly 10部署JDO资源适配器遇IJ010075错误求助
解决Datanucleus JDO JCA适配器部署到WildFly 10的配置问题
错误原因
报错IJ010075: The resource adapter metadata must contain either an outbound or inbound configuration,说明JCA适配器的部署描述符缺少必要的出站/入站配置段。由于Datanucleus作为ORM工具,需要通过出站连接配置绑定到已有的java:/TestDS数据源,因此只需重点配置outbound部分。
配置步骤
1. 编写JCA适配器配置文件
创建或修改适配器的ra.xml(或在WildFly中使用datanucleus-jdo-jca-ra.xml作为部署描述符),添加以下出站配置:
<connector xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" version="1.5"> <resourceadapter> <resourceadapter-name>DatanucleusJDOAdapter</resourceadapter-name> <!-- 出站连接核心配置 --> <outbound-resourceadapter> <connection-definition> <managedconnectionfactory-class>org.datanucleus.jca.ManagedConnectionFactoryImpl</managedconnectionfactory-class> <!-- 绑定已部署的数据源 --> <config-property> <config-property-name>datasourceName</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>java:/TestDS</config-property-value> </config-property> <!-- 可选:配置持久化单元名称 --> <config-property> <config-property-name>persistenceUnitName</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>你的持久化单元名称</config-property-value> </config-property> <connectionfactory-interface>javax.jdo.PersistenceManagerFactory</connectionfactory-interface> <connectionfactory-impl-class>org.datanucleus.jca.ConnectionFactoryImpl</connectionfactory-impl-class> <connection-interface>javax.jdo.PersistenceManager</connection-interface> <connection-impl-class>org.datanucleus.jca.ConnectionImpl</connection-impl-class> </connection-definition> <transaction-support>LocalTransaction</transaction-support> <reauthentication-support>false</reauthentication-support> </outbound-resourceadapter> </resourceadapter> </connector>
2. 部署到WildFly
- 将修改后的
ra.xml打包进datanucleus-jdo-jca-6.0.6.rar,或在WildFly的standalone/deployments目录下放置datanucleus-jdo-jca-6.0.6.rar和对应的datanucleus-jdo-jca-ra.xml配置文件,创建datanucleus-jdo-jca-6.0.6.rar.dodeploy文件触发部署。 - 启动WildFly,查看日志确认配置错误是否消除。
3. 应用中调用验证
通过JNDI获取PersistenceManagerFactory:
Context ctx = new InitialContext(); PersistenceManagerFactory pmf = (PersistenceManagerFactory) ctx.lookup("java:/eis/DatanucleusJDOAdapter");
关键说明
- 无需配置inbound:Datanucleus JCA适配器是应用主动调用数据库的ORM层,属于出站资源,仅需配置
outbound-resourceadapter段。 - 数据源名称必须完全匹配:确保
datasourceName的值java:/TestDS和WildFly中已部署的数据源JNDI名称一致。 - 事务支持选择:根据业务需求选择
LocalTransaction(本地事务)或XATransaction(分布式事务),无分布式事务需求时用LocalTransaction即可。
内容的提问来源于stack exchange,提问作者Ebuzer Taha KANAT
相关产品推荐
相关产品推荐

