在java-class' ClassA'中调用方法时出错' org.my.ClassB'与' org.my.ClassB'不相容

时间:2014-03-25 09:39:53

标签: xpages xpages-ssjs

嗨,我有一个很好的iussue:

我有两个类org.my.ClassAorg.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()。但是一段时间后应用程序因同样的错误而中断了同样的结果。

从我的观点来看,它必须对编译类的缓存做一些事情,或者因为如果我清除数据库,一切都运行得很好。

希望有人能解决这个问题。

1 个答案:

答案 0 :(得分:1)

这是一个类加载器问题。

您可以在Frantisek Kossuth的答案中找到有关该问题的更多详细信息: 详情请见Meaning of java.lang.ClassCastException: someClass incompatible with someClass