我发誓我以前做过这件事,只是不确定我忘了什么。从Java SE客户端使用远程EJB与Weblogic 11g交谈时,我收到类未找到的异常。
javax.naming.NamingException: Unhandled exception in lookup [Root exception is org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe]
at weblogic.corba.j2ee.naming.Utils.wrapNamingException(Utils.java:83)
at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:291)
at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:227)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
Caused by: org.omg.CORBA.MARSHAL: vmcid: SUN minor code: 257 completed: Maybe
at com.sun.corba.se.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:8260)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1013)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:873)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_abstract_interface(CDRInputStream_1_0.java:863)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_abstract_interface(CDRInputStream.java:269)
at com.sun.corba.se.impl.util.Utility.readAbstractAndNarrow(Utility.java:948)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1992)
at com.sun.corba.se.impl.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:2220)
at com.sun.corba.se.impl.io.IIOPInputStream.inputObject(IIOPInputStream.java:1227)
at com.sun.corba.se.impl.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:400)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:317)
at com.sun.corba.se.impl.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:283)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:1034)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_value(CDRInputStream_1_0.java:879)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_value(CDRInputStream.java:249)
at com.sun.corba.se.impl.corba.TCUtility.unmarshalIn(TCUtility.java:269)
at com.sun.corba.se.impl.corba.AnyImpl.read_value(AnyImpl.java:559)
at com.sun.corba.se.impl.encoding.CDRInputStream_1_0.read_any(CDRInputStream_1_0.java:739)
at com.sun.corba.se.impl.encoding.CDRInputStream.read_any(CDRInputStream.java:220)
at weblogic.corba.cos.naming._NamingContextAnyStub.resolve_any(_NamingContextAnyStub.java:81)
at weblogic.corba.j2ee.naming.ContextImpl.lookup(ContextImpl.java:267)
... 5 more
Caused by: java.lang.ClassNotFoundException
... 26 more
答案 0 :(得分:0)
vmcid: SUN minor code: 257 completed: Maybe
让我觉得它的版本不兼容 - 也就是说,客户端代码和rmi存根是与服务器ejb代码不同的版本。
答案 1 :(得分:0)
wlfullclient.jar
在WebLogic Server 10.0之前,T3和WLS-IIOP客户端应用程序需要
weblogic.jar
文件来提供特定于WebLogic Server的增值功能。对于WebLogic Server 10.x及更高版本,需要这些功能的独立客户端应用程序使用wlfullclient.jar
文件而不是weblogic.jar
[...]您可以使用JarBuilder工具为客户端应用程序生成
wlfullclient.jar
文件。 [...]注意:在客户端应用程序中继续使用
weblogic.jar
可能会产生ClassNotFoundException
。
答案 2 :(得分:0)
此注释适用于面临错误的开发人员:vmcid:SUN次要代码:2xx,带有weblogic 12c +
如果使用的是WebLogic 12.1.3(或更高版本)和JDK 1.7,请安装wlthint3client.jar文件,而不要安装wlfullclient.jar。如果您使用的是WebLogic 12.1.3(或更高版本)和JDK 1.8,请安装wljmsclient.jar文件和wlclient.jar文件,而不要安装wlfullclient.jar。
您应该使用的jar取决于您使用的Java。在我的情况下,wlclient.jar无法正常工作,我得到了 vmcid:SUN次要代码:211 ,因此我使用wlthint3client.jar并在Java Web 8和Oracle WebLogic Server 12.2.1.3中进行了更改,现在对我有效