Что означает «org.omg.CORBA.MARSHAL: vmcid: 0x0 младший код: 0 завершено: возможно» означает? - PullRequest
4 голосов
/ 25 января 2012

Я получаю очень загадочную ошибку при вызове компонента EJB , развернутого на сервере weblogic 10.3.5 .

Ошибка:

javax.ejb.EJBException: CORBA MARSHAL 0 Maybe; nested exception is: 
    org.omg.CORBA.MARSHAL:   vmcid: 0x0  minor code: 0 completed: Maybe; nested exception is: org.omg.CORBA.MARSHAL:   vmcid: 0x0  minor code: 0 completed: Maybe
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:121)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:103)
    at $Proxy0.getOrder(Unknown Source)
    at test.EjbTest.main(EjbTest.java:37)
Caused by: org.omg.CORBA.MARSHAL:   vmcid: 0x0  minor code: 0 completed: Maybe
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:897)
    at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:99)
    at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:572)
    at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:430)
    at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:326)
    at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
    at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
    at service._OrderSession_fb3odc_OrderSessionRIntf_Stub.getOrder(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
    ... 2 more

Привязка ejb создается с использованием wlclient.jar :

public static <T> T getRemoteEJB(String jndi, Class<T> clazz){
    try {
        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        props.put(Context.PROVIDER_URL, "t3://localhost:7001");

        InitialContext ctx = new InitialContext(props);

        T ejb = (T) ctx.lookup(jndi);
        PortableRemoteObject.narrow(ejb, clazz);
        return ejb;

    } catch (Exception e) {
        logger.error("Unable to lookup object of class {} through jndi name {}", clazz, jndi);
    }
    return null;
}

Я не могу найти, что означает этот таинственный vmcid: 0x0 minor code: 0 completed: Maybe, поэтому, пожалуйста, хотя бы для того, чтобы понять, что это значит. Запрос выполняется на стороне сервера, потому что там нет ошибок.

Ответы [ 2 ]

6 голосов
/ 25 января 2012

Быстрый поиск ошибок указывает на эту ссылку . Одна из рекомендаций - не использовать wlclient.jar, а weblogic.jar. Цитирование по ссылке,

Пожалуйста, попробуйте использовать weblogic.jar на стороне клиента или даже лучше возможность создать "wlfullclient.jar" с помощью утилиты jarBuilder предоставляется как часть WebLogic

Похоже, проблема в распределении объектов при использовании протокола t3 WebLogic. Пожалуйста, проверьте эту ссылку.

3 голосов
/ 11 июня 2014

Еще одна вещь, которую вы могли бы попробовать на стороне клиента, это использовать wlthint3client.jar.Поставляется с WebLogic 10.3.5 (в wlserver_10.3.5 \ server \ lib).Он больше, чем wlclient.jar, но намного меньше, чем wlfullclient.jar.Предупреждение, если вы используете это: если клиент Swing переключается с iiop на t3, ему нужно будет включить smclientclasses.jar в свой пакет веб-запуска, иначе они получат ошибки.Если клиент не использует Swing, это не должно быть проблемой.

...