Java 如何在WebSphereAppServer上使用复杂参数避免JMX调用中的ClassCastException

Java 如何在WebSphereAppServer上使用复杂参数避免JMX调用中的ClassCastException,java,serialization,websphere,jmx,Java,Serialization,Websphere,Jmx,我们使用JMX在同一WebSphereApplicationServer(6.1)上的不同EAR之间进行通信。如果我们只使用Java类型作为参数,所有这些都可以很好地工作,但是如果我们使用自己的类作为参数,问题是我们在接收方得到了ClassCastException。这显然是一个类加载器问题:如果将参数类型为的jar放入JRE认可的目录中,使得所有类加载器使用完全相同的类,那么异常就会消失。但我们更愿意将定义参数类型的库放在EAR本身中 现在我的问题是:有没有一个技巧可以说服我们在JMX调用期间

我们使用JMX在同一WebSphereApplicationServer(6.1)上的不同EAR之间进行通信。如果我们只使用Java类型作为参数,所有这些都可以很好地工作,但是如果我们使用自己的类作为参数,问题是我们在接收方得到了ClassCastException。这显然是一个类加载器问题:如果将参数类型为的jar放入JRE认可的目录中,使得所有类加载器使用完全相同的类,那么异常就会消失。但我们更愿意将定义参数类型的库放在EAR本身中


现在我的问题是:有没有一个技巧可以说服我们在JMX调用期间序列化和反序列化参数?我想在这种情况下,ClassCastException会消失。

您是正确的,这是一个类加载器问题,将序列化对象作为JMX调用参数传递会回避这个问题。但你可能会付出相当大的性能惩罚。对象序列化/反序列化并不便宜。

没错。但我的问题是:如何说服was在执行JMX调用时使用序列化?它似乎只是通过引用来传递它们,这在这里造成了麻烦。您自己手动序列化参数并将其作为字节数组传递?