Ath*_*rva 1 java macos rmi tomcat7
我正在使用Java远程方法调用(RMI)测试Web应用程序。当我通过加密狗,宽带连接到互联网时;RMI需要很长时间才能响应该请求。完成方法调用大约需要10秒钟。我还可以看到,一旦进行方法调用,互联网连接中的数据传输速率就会提高。因此,显然,它似乎正在通过外部网络在两个内部进程之间建立RMI连接。
与互联网断开连接后,它的响应变化很快,例如几毫秒。我的/ etc / hosts文件具有127.0.0.1 localhost的条目。我总是在naming.lookup的方法调用URL中使用127.0.0.1。但是无法弄清楚当我连接到Internet时如何使计算机快速响应RMI呼叫。有什么建议么?
问题不是您用于RMI注册表的查找调用的地址,而是URL中的地址是查找调用的结果。这默认为系统上第一个接口的IP地址,因此我的猜测是,当您连接到Internet时,它就是您的外部连接。
我认为正在发生的事情是您在127.0.0.1上调用RMI注册表,这将使Internet地址返回所需服务的位置,因此RMI调用将通过加密狗接口路由出去。
您需要设置的java.rmi.server.hostname
属性来告诉RMI注册主机名或IP地址在其RMI的URL返回的。
因此,您将需要以下内容:
String ipAddress = "10.1.2.3"; //Local IP address
System.setProperty("java.rmi.server.hostname",ipAddress);
Run Code Online (Sandbox Code Playgroud)
要么
String hostname = "myserver"; //hostname that resolves for a local address
System.setProperty("java.rmi.server.hostname",hostname);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3966 次 |
最近记录: |