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.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With