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 <trung.n.k@gmail.com> 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/
|