嗨,我有一个很好的iussue:
我有两个类org.my.ClassA
和org.my.ClassB
这两个类在同一个数据库的WEB-INF / src中的org.my包中。
ClassA的方法为public add(org.my.ClassB newB){...}.
在SSJS中,我有一个代码块,我称之为ClassA.add(ClassB),它通常工作正常。直到某个未知点,服务器无法看到org.my.ClassB === org.my.ClassB并且它返回错误(从德语maby翻译的消息在英文版中看起来不同):
error calling method 'add(org.my.ClassB)' in java-class 'ClassA'.
'org.my.ClassB' is incompatible with 'org.my.ClassB'.
它指向我在SSJS中的一行:ClassA.add(ClassB)
;
到目前为止我尝试了什么:
首先我添加了行importPackage(org.my);我的SSJS代码。没有运气。
我尝试添加另一个方法add(Object newB)
,然后将对象转换为ClassB但结果相同。该错误似乎不是来自SSJS代码的java类,因为它无法找到类型为org.my.ClassB
的参数的方法。但是如果我在SSJS代码中测试对象,它将返回org.my.ClassB.
然后我尝试将类路径添加到SSJS块中的所有变量,如:var newB:org.my.ClassB = new org.my.ClassB()
。但是一段时间后应用程序因同样的错误而中断了同样的结果。
从我的观点来看,它必须对编译类的缓存做一些事情,或者因为如果我清除数据库,一切都运行得很好。
希望有人能解决这个问题。
答案 0 :(得分:1)
这是一个类加载器问题。
您可以在Frantisek Kossuth的答案中找到有关该问题的更多详细信息: 详情请见Meaning of java.lang.ClassCastException: someClass incompatible with someClass