我目前正在开发使用RPC调用的概念证明Blackberry应用程序。我还在.Net中开发了一个非常基本的服务器应用程序,该应用程序只是对发送给它的字符串加时间戳,并将其返回给客户端。我已经能够使用.Net客户端和Java客户端连接到服务器应用程序,因此我相当有信心它可以正常工作。
对于Blackberry客户端应用程序,我使用Java Wireless Toolkit 2.5.2为RPC调用生成存根。然后,我在基本的Blackberry应用程序中使用了这些调用,以尝试复制.Net和Java客户端的结果,但是它始终抛出异常。我不确定我是否正确使用了存根。
pushScreen(new HelloWorldScreen("Initiating communication"));
try {
IHelloService_Stub stub = new IHelloService_Stub();
String result = stub.hello("Hello From Blackberry");
pushScreen(new HelloWorldScreen(result));
} catch (RemoteException e) {
pushScreen(new HelloWorldScreen(e.getMessage()));
}
目前,我正在本地运行所有内容。服务器以localhost身份运行,而Blackberry应用程序则在Blackberry模拟器上运行。我已经使用Blackberry浏览器检查是否可以访问该服务,并且可以通过网络连接来解决问题。
引发的异常如下:
java.io.interruptedIOException:本地连接在〜120000之后超时
尝试将; deviceside = true附加到您的URL。这应该消除了使用MDS模拟器的需要。
似乎很重要where已安装MDS。我最初安装在C:\ Program Files(x86)\ Research in Motion中,但随后在其他地方阅读了一篇建议将其直接安装到C:\的文章。令人惊讶的是,这样做就成功了,MDS现在可以运行了。对于其他有MDS问题的人,这里是故障排除链接: