微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

接口 javax/ejb/EJBHome 的接口 itable 初始化中的加载器约束冲突

如何解决接口 javax/ejb/EJBHome 的接口 itable 初始化中的加载器约束冲突

在实现 Oracle SOA 客户端和从 Wildfly 检索远程 EJB 的过程中,我们遇到以下错误

接口itable初始化中的loader约束冲突:解析方法“oracle.bpel.services.workflow.query.ejb.TaskQueryService_oz1ipg_HomeImpl_1036_WLStub.remove(Ljavax/ejb/Handle;)V”时类加载器(weblogic的实例) /utils/classloaders/GenericclassLoader)的当前类,oracle/bpel/services/workflow/query/ejb/TaskQueryService_oz1ipg_HomeImpl_1036_WLStub,和接口javax/ejb/EJ的类加载器(org/jboss/modules/ModuleClassLoader的实例)有不同的签名中使用的 javax/ejb/Handle 类型的类对象

这是完整的堆栈跟踪:

Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "oracle.bpel.services.workflow.query.ejb.TaskQueryService_oz1ipg_HomeImpl_1036_WLStub.remove(Ljavax/ejb/Handle;)V" the class loader (instance of weblogic/utils/classloaders/GenericclassLoader) of the current class,oracle/bpel/services/workflow/query/ejb/TaskQueryService_oz1ipg_HomeImpl_1036_WLStub,and the class loader (instance of org/jboss/modules/ModuleClassLoader) for interface javax/ejb/EJBHome have different Class objects for the type javax/ejb/Handle used in the signature
at java.lang.class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_202]
at java.lang.class.privateGetDeclaredConstructors(UnkNown Source) ~[?:1.8.0_202]
at java.lang.class.getConstructor0(UnkNown Source) ~[?:1.8.0_202]
at java.lang.class.getConstructor(UnkNown Source) ~[?:1.8.0_202]
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:794) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.internal.StubGenerator.generateStub(StubGenerator.java:786) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.extensions.StubFactory.getStub(StubFactory.java:74) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.internal.StubInfo.resolveObject(StubInfo.java:254) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.internal.StubInfo.readResolve(StubInfo.java:199) ~[wlfullclient.jar!/:10.3.6.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(UnkNown Source) ~[?:1.8.0_202]
at java.io.ObjectStreamClass.invokeReadResolve(UnkNown Source) ~[?:1.8.0_202]
at java.io.ObjectInputStream.readOrdinaryObject(UnkNown Source) ~[?:1.8.0_202]
at java.io.ObjectInputStream.readobject0(UnkNown Source) ~[?:1.8.0_202]
at java.io.ObjectInputStream.readobject(UnkNown Source) ~[?:1.8.0_202]
at weblogic.utils.io.ChunkedobjectInputStream.readobject(ChunkedobjectInputStream.java:208) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rjvm.MsgAbbrevInputStream.readobject(MsgAbbrevInputStream.java:599) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.utils.io.ChunkedobjectInputStream.readobject(ChunkedobjectInputStream.java:204) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.internal.ObjectIO.readobject(ObjectIO.java:62) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:243) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.jndi.internal.ServerNamingNode_1036_WLStub.lookup(UnkNown Source) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:424) ~[wlfullclient.jar!/:10.3.6.0]
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:412) ~[wlfullclient.jar!/:10.3.6.0]
at javax.naming.InitialContext.lookup(UnkNown Source) ~[?:1.8.0_202]
at javax.naming.InitialContext.lookup(UnkNown Source) ~[?:1.8.0_202]
at oracle.bpel.services.workflow.query.client.TaskQueryServiceRemoteClient.authenticate(TaskQueryServiceRemoteClient.java:131) ~[oracle.bpm-services-11.1.0.jar!/:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(UnkNown Source) ~[?:1.8.0_202]
at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invokeTarget(WFClientRetryInvocationHandler.java:133) ~[oracle.bpm-services-11.1.0.jar!/:?]
at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invoke(WFClientRetryInvocationHandler.java:72) ~[oracle.bpm-services-11.1.0.jar!/:?]
at com.sun.proxy.$Proxy192.authenticate(UnkNown Source) ~[?:?]
at app.bpm.impl.oracle.BPMOracleClientManager.getWorkflowContext(BPMOracleClientManager.java:391) ~[APP_BpmVirtualService.jar:?]
at app.bpm.impl.oracle.BPMOracleClientManager.getBPMContext(BPMOracleClientManager.java:152) ~[APP_BpmVirtualService.jar:?]
at app.bpm.impl.oracle.BPMOracleClientHandler.countTask(BPMOracleClientHandler.java:193) ~[APP_BpmVirtualService.jar:?]
at app.bpm.impl.oracle.BPMOracleService.countTasksFromBpm(BPMOracleService.java:153) ~[APP_BpmVirtualService.jar:?]
at app.bpm.impl.oracle.BPMOracleService.countTasks(BPMOracleService.java:127) ~[APP_BpmVirtualService.jar:?]
at com.app.bpm.BPMListaAttivitaHandler.loadBpmtaskList(BPMListaAttivitaHandler.java:238) ~[app-business.jar:?]
at com.app.bpm.BPMListaAttivitaHandler.<init>(BPMListaAttivitaHandler.java:201) ~[app-business.jar:?]
at app.mvc.pianiformativi.stato.StatoRicercaViewComponent.loadStatoRicerca(StatoRicercaViewComponent.java:122) ~[classes:?]
at app.mvc.listaattivita.ListaAttivitacontroller.loadStatoRicercaPianoFormativo(ListaAttivitacontroller.java:1343) ~[classes:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(UnkNown Source) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(UnkNown Source) ~[?:1.8.0_202]
at ognl.OgnlRuntime.invokeMethodInsideSandBox(OgnlRuntime.java:1266) ~[ognl-3.1.28.jar!/:?]
at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:1251) ~[ognl-3.1.28.jar!/:?]
at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1969) ~[ognl-3.1.28.jar!/:?]
 ... 122 more

应用程序如下所示:

APP-EE.EAR
|____app-business-ejb.jar
|____app-bda-ejb.jar
|____app-business-client.jar
|____app-web.war
|____ear/lib
        |____wlfullclient.jar
        |____clientSOA.jar
        

jboss-deployment-structure.xml 包含对自定义模块 (com.custom.customlib) 的引用,其中包含以下 jar:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <ear-subdeployments-isolated>false</ear-subdeployments-isolated>
    <sub-deployment name="app-web.war">
        <dependencies>
            <module name="deployment.app-ee.ear.app-business-ejb.jar" />
            <module name="deployment.app-ee.ear.app-bda-ejb.jar" />
            <module name="deployment.app-ee.ear.app-business-client.jar" />
        </dependencies>
    </sub-deployment>
    <sub-deployment name="app-business.jar">
        <dependencies>
            <module name="deployment.app-ee.ear.app-web.war" />
        </dependencies>
    </sub-deployment>
    <deployment>
        <dependencies>
            <module name="com.custom.customlib" export="TRUE" meta-inf="export"/>
            <module name="org.apache.commons.commons-jcs-jcache" export="TRUE" meta-inf="export"/>
            <module name="org.springframework" export="true" meta-inf="export"/> 
            <module name="org.apache.ibatis" export="true" meta-inf="export"/> 
            <module name="org.mybatis.spring" export="true" meta-inf="export"/>
            <module name="org.apache.xerces" export="true" meta-inf="export"/>
            <module name="org.freemarker" export="true" meta-inf="export"/>             
            <module name="net.sourceforge.jtds" export="true" meta-inf="export"/>       
            <module name="org.apache.shiro" export="true" meta-inf="export"/>   
            <module name="org.apache.struts" export="true" meta-inf="export"/>      
        </dependencies>
    </deployment>
</jboss-deployment-structure>

用于当前迁移的产品:

  • Wildfly 18.0.1
  • JDK 1.8.0_202

  • Weblogic 服务器 10.3.6
  • SOA 服务器 11.1.1.6
  • JDK 1.7.0_281

我认为这是 oracle weblogic EJB 和 wildfly EJB 之间的签名问题。 任何可能的解决方案? 谢谢!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?