我不太了解你对程序流程的描述,但是通常当你收到ClassCastExceptions时,你无法解释已经用一个类加载器加载了该类,然后尝试将其转换为另一个类加载器加载的同一个类。这将不起作用-它们由JVM中的两个不同的Class对象表示,并且转换将失败。
有一篇关于WebSphere中的类加载的文章。我不能说它如何适用于你的应用程序,但是有许多可能的解决方案。我至少可以想到:
手动更改上下文类加载器。要求你实际上可以获取对适当的类加载器的引用,这在你的情况下是不可能的。
Thread.currentThread().setContextClassLoader(...);
确保该类由层次结构中较高级别的类加载器加载。
序列化和反序列化对象。(Y!)
不过,针对你的特定情况可能有更合适的方法



