If the types are not equal to what you expect then it must be a class
loader issue - do you have multiple instances of the class on the
classpath in different class loaders?


On 8/1/06, Nguyen Kien Trung <[EMAIL PROTECTED]> wrote:

 Hi,

 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()[0] ==
invocation.getParameterTypes()[0])); // return false
     log.debug("equal? : " +
(m.getParameterTypes()[0].equals(invocation.getParameterTypes()[0])));//
return false
     log.debug("equal class loader ==? : " +
(m.getParameterTypes()[0].getClassLoader() ==
invocation.getParameterTypes()[0].getClassLoader())); // return false

 where:
 - 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

 Trung



--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to