You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 16:00:34