[英]ClassNotFoundException when working with Remote EJB in WebLogic 11g
我可以發誓我以前做過這件事,只是不確定我忘記了什么。 在使用來自與 Weblogic 11g 通信的 Java SE 客戶端的遠程 EJB 時,我收到類未找到異常。
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
你需要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
。
此評論適用於面臨錯誤的開發人員:vmcid: SUN minor code: 2xx with 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 minor code: 211 ,所以我使用 java 8 和 Oracle WebLogic Server 12.2.1.3 更改了 wlthint3client.jar ,現在它對我有用。
vmcid: SUN minor code: 257 completed: Maybe
讓我覺得它是版本不兼容——也就是說,客戶端代碼和 rmi 存根與服務器 ejb 代碼的版本不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.