Monday, August 31, 2015

java.lang.NoSuchMethodError: weblogic.rmi.internal.MethodDescriptor.

The full error message is: java.lang.NoSuchMethodError: weblogic.rmi.internal.MethodDescriptor.(Ljava/lang/reflect/Method;Ljava/lang/Class;ZZZZII)V and this can happen if you use in WL 12 an EJB client stub generated by WL 10.3.5 (I think the issue is not there if the stub is generated by 10.3.6).

Simply said, the MethodDescriptor constructors have been changed in WebLogic and that specific one has been removed.

In wl12 the class is packaged in wlthint3client.jar, weblogic.server.merged.jar, com.bea.core.weblogic.rmi.client_4.0.0.0.jar , com.oracle.webservices.wls.jaxrpc-client.jar, com.oracle.webservices.wls.jaxws-wlswss-client.jar

You have only 2 solutions: either to use a wlfullclient.jar from the previous release of WL, or to regenerate the stub with WL12 appc.

see also http://stackoverflow.com/questions/25630220/oracle-iam-platform-utils-nosuchserviceexception-java-lang-reflect-invocationt/32314398#32314398 and https://liujinyao.wordpress.com/2015/05/11/java-lang-nosuchmethoderror-weblogic-rmi-internal-methoddescriptor-ljavalangreflectmethodljavalangclasszzzziiv/

As mentioned by Özkan Pakdil in the comment, it's much simpler to "delete *******_stub.class from client jar and deploy the ear that way so at the end wl12 generates it on the fly"

2 comments:

Özkan Pakdil said...

there is another way to solve this. http://mascix.blogspot.com/2015/09/weblogic-12-to-11-ejb-connection-problem.html

Pierluigi Vernetto said...

thank you so much! I have updated the post with your solution