What does 'org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: Maybe' mean?
Asked Answered
M

2

5

I'm getting very mysterious error while invoking EJB bean deployed on weblogic 10.3.5 server.

The error is:

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

The ejb binding is created using 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;
}

I can't find what this mysterious vmcid: 0x0 minor code: 0 completed: Maybe means, so please at least for clue what this means. The request is completed on server side, because there are no errors there.

Myrnamyrobalan answered 25/1, 2012 at 12:45 Comment(0)
E
6

A quick search for the error points to this link. One of the recommendation is not to use wlclient.jar but weblogic.jar. Quoting from the link,

Please try using weblogic.jar at client end or even there is a better option to create the "wlfullclient.jar" using the jarBuilder utility provided as part of WebLogic

The problem seems to be in Marshalling of the objects while using the WebLogic's t3 protocol. Please check out this link as well.

Epochmaking answered 25/1, 2012 at 14:17 Comment(2)
The link with instruction to build wfullclient.jar is not working... Where to get weblogic.jar? I've found some file named that in server/lib, but I can't use it instead wlclient since many classes are missing such as EjbException....Myrnamyrobalan
Here is another link which describes how to create wlfullclient.jarGeanticlinal
B
3

Another thing you could try on the client side would be to use wlthint3client.jar. It comes with WebLogic 10.3.5 (in wlserver_10.3.5\server\lib). It is bigger than wlclient.jar, but much smaller than wlfullclient.jar. A warning if you use this: if the Swing client switches from iiop to t3, they will need to include the smclientclasses.jar in their webstart bundle, otherwise they will get errors. If the client isn’t using Swing, then it shouldn’t be a problem.

Burress answered 11/6, 2014 at 13:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.