簡體   English   中英

在 WebLogic 11g 中使用遠程 EJB 時出現 ClassNotFoundException

[英]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+

我從( https://www.ibm.com/support/knowledgecenter/en/SS4QMC_9.5.0/com.ibm.help.install.cpqpostinstallation.doc/installation/t_SettingUpRuntimeUtilitiesOnOracleWebLogic.html

如果您使用的是 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM