I've got a mysterious error...
I'm using Lingo and ActiveMQ for remote method invocation.
When receiving a RemoteInvocation object, Lingo uses reflection to
invoke method on proxy object which has been created earlier. But the
invocation throws NoSuchMethodException. I logged as much as I could
and found out:
1) By introspecting the proxy object, it's confirmed that it contains
the required method for invocation
2) The parameters retrieved from RemoteInvocation object (invocation)
by getParameterTypes() and from the proxy object by introspection are
similar in terms of class type
3) Interesting results
log.debug("equal==? : " + (m.getParameterTypes() ==
invocation.getParameterTypes())); // return false
log.debug("equal? : " +
log.debug("equal class loader ==? : " +
invocation.getParameterTypes().getClassLoader())); // return
- m: of type java.lang.reflect.Method : method in the proxy object
- invocation: of type
org.springframework.remoting.support.RemoteInvocation : invocation
object received from ActiveMQ
So, the issue here is: "Same class but not equal"
Is there anything in marshalling and demarshalling process of ActiveMQ
that could lead to this problem?
Appreciate for any advice