我在下面的语句中得到classCasteException:
function axxxxx(X resource)
{
((SimpleConnectionImpl)resource).somefunction();// getting classcaste exception here
}
我检查了资源的运行时值,发现它是org.java.SimpleConnectionImpl@ao4d0323
。仍然无法进行类型转换。其中SimpleConnectionImpl
也在同一个包中。
你有什么建议吗? InstanceOff运算符也在这里返回false。当我在做getclass()
时,它返回相同的类名。
答案 0 :(得分:0)
您可能在类路径上有两个版本的相同JAR。确保只有一个包含SimpleConnectionImpl的JAR版本位于完整应用程序中所有JAR工件(EAR,WAR等)所包含的所有依赖项中。
更准确地说,您希望在单个类加载器下只有一个给定类的副本。删除所有工件的类副本是J2EE环境中部署的重要部分,可以减少这些错误,有时可以将其投入生产。