#java #ejb #weblogic
#java #ejb #weblogic
Вопрос:
Я мог бы поклясться, что делал это раньше, просто не уверен, что я забываю. Я получаю исключения class not found при работе с удаленными EJB от клиента Java SE, который обращается к 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
Комментарии:
1. 1 по этому вопросу. У меня такая же ошибка.
2. Франц См.: В итоге я упаковал весь api и impl в jar и развернул для вызывающего. Так не должно быть, но, похоже, сработало.
Ответ №1:
Это vmcid: SUN minor code: 257 completed: Maybe
заставляет меня думать, что это несовместимость версий, то есть клиентский код и заглушки rmi отличаются от версии ejb-кода сервера.
Ответ №2:
Вам нужно wlfullclient.jar
, как указано в документации
До WebLogic Server 10.0
weblogic.jar
файл требовался для клиентских приложений T3 и WLS-IIOP для предоставления дополнительных функций, специфичных для WebLogic Server. Для WebLogic Server 10.x и более поздних версий автономные клиентские приложения, требующие этих функций, используютwlfullclient.jar
файл вместоweblogic.jar
[…]Вы можете сгенерировать
wlfullclient.jar
файл для клиентских приложений с помощью инструмента JarBuilder. […]Примечание: продолжение использования
weblogic.jar
в клиентских приложениях может привестиClassNotFoundException
к.
Ответ №3:
Этот комментарий предназначен для разработчиков, которые столкнулись с ошибкой: vmcid: SUN minor code: 2xx с 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, поэтому я изменил wlthint3client.jar использование java 8 с Oracle WebLogic Server 12.2.1.3, и теперь это сработало для меня.