【发布时间】:2019-08-10 00:55:16
【问题描述】:
我有几个通过 EJB 与“核心”项目交互的项目。
这些项目中的大多数都使用相同的core.ejb.client.jar。
然而,一个项目使用它自己的core.external.ejb.client.jar,这是通过复制用于该项目所需的唯一 EJB 的文件来制作的。
我有一个使用一种方法的 EJB/接口:public Application findApp()
它在方法中创建一个服务实例,并在服务中导入“代码”类。
core.external.ejb.client.jar 包含 weblogic 创建的相关 EJB/接口文件和 Application 类。另一个core.ejb.client.jar 包含许多其他类,包括Code.class。
当我的项目调用findApp() 时,我收到以下错误,但是myportal 中没有对 Code 类的引用。
错误 org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler - 处理请求期间发生异常:对象 myportal.web.actions.HomeAction@31c178d3 的方法“执行”失败 ognl.MethodFailedException:对象 myportal.web.actions.HomeAction@31c178d3 的方法“执行”失败 在 ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1556) ~[ognl-3.1.15.jar:?] 在 ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68) ~[ognl-3.1.15.jar:?] 在 com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:98) ~[struts2-core-2.5.17.jar:2.5.17] 在 com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:90) ~[struts2-core-2.5.17.jar:2.5.17] 在 ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1620) ~[ognl-3.1.15.jar:?] 在 ognl.ASTMethod.getValueBody(ASTMethod.java:91) ~[ognl-3.1.15.jar:?] 在 ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) ~[ognl-3.1.15.jar:?] 在 ognl.SimpleNode.getValue(SimpleNode.java:258) ~[ognl-3.1.15.jar:?] 在 ognl.Ognl.getValue(Ognl.java:470) ~[ognl-3.1.15.jar:?] 在 ognl.Ognl.getValue(Ognl.java:434) ~[ognl-3.1.15.jar:?] 在 com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:401) ~[struts2-core-2.5.17.jar:2.5.17] ... 引起:java.lang.NoClassDefFoundError: core/common/business/Code; 在 java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_152] 在 java.lang.Class.privateGetDeclaredFields(Class.java:2583) ~[?:1.8.0_152] 在 java.lang.Class.getDeclaredField(Class.java:2068) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1803) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:79) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:494) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:482) ~[?:1.8.0_152] 在 java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.(ObjectStreamClass.java:482) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:379) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:669) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1880) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1746) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2037) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:428) ~[?:1.8.0_152] 在 java.util.ArrayList.readObject(ArrayList.java:797) ~[?:1.8.0_152] 在 sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) ~[?:?] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] 在 java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] 在 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1158) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2173) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2064) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1568) ~[?:1.8.0_152] 在 java.io.ObjectInputStream.readObject(ObjectInputStream.java:428) ~[?:1.8.0_152] 在 weblogic.rmi.extensions.server.CBVInputStream.readObject(CBVInputStream.java:64) ~[com.bea.core.weblogic.rmi.client.jar:12.2.1.3] 在 weblogic.rmi.internal.ServerRequest.unmarshalReturn(ServerRequest.java:127) ~[com.bea.core.weblogic.rmi.client.jar:12.2.1.3] 在 weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:555) ~[com.bea.core.weblogic.rmi.client.jar:12.2.1.3] 在 weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:313) ~[com.bea.core.weblogic.rmi.client.jar:12.2.1.3] 在 core.common.ejb.external.core_ExternalPortalEJB_vl7zv5_ExternalPortalInterfaceImpl_12213_WLStub.getApplicationList(未知来源)~[core.external.ejbclient.jar:?] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] 在 java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] 在 weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:86) ~[com.oracle.weblogic.ejb.jar:12.2.1.3] 在 com.sun.proxy.$Proxy752.getApplicationList(Unknown Source) ~[?:?] 在 myportal.web.actions.HomeAction.execute(HomeAction.java:58) ~[_wl_cls_gen.jar:?] 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] 在 java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] 在 ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:899) ~[ognl-3.1.15.jar:?] 在 ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1544) ~[ognl-3.1.15.jar:?]
【问题讨论】:
标签: java ejb noclassdeffounderror