我正在使用 knopflerfish 环境,我正在尝试使用 ServiceRegistration 使用远程对象中的函数。我将举例说明。我创建了两个包,A和B。Bundle B有一个C类,我在其中实现了两种方法:
public void printIt(JSONObject toPrint) {
logger.debug(toPrint);
}
public void printIt(String toPrint) {
logger.debug(toPrint);
}
public JSONObject returnedJ() {
return (new JSONObject());
}
public String returnedM() {
return "hello";
}
此类C正在B的激活器中初始化并使用 ServiceRegistration 注册,因此它可以用作捆绑包A的远程对象。 A的激活器只是获取注册的对象C以便使用它的方法,这就是问题出现的地方。可以使用远程对象,但只有使用 String 的方法才能使用 JSONObject 方法。这发生在任何人身上吗?这可能是什么解释?
我已经通过调试和使用 try/catch 测试了这种行为,并且没有显示任何错误。还不得不说,当使用 JSONObject 方法时,捆绑A被冻结并且类C的方法中没有信号。现在,我将解析包 A 中的 JSONObject 到 String 以及包 B 中的 String 到 JSONObjects 的对象,但这仍然让我很烦。
PD:我正在使用org.codehaus.jettison.json.JSONObject。
提前致谢。