我在Java方面没有那么丰富的经验。我试图实现简单的RMI通信,但面临的问题。
这是我的RMI客户端
public class MainClientApplication {
public static final String FILE_NAME_RMI_POLICY = "rmi.policy";
public static final String RMI_DOMAIN = "mydomain.net";
public static final String RMI_ENDPOINT = "/MD5Decrypter
我们使用Java RMI进行通信。RMI客户端将具有回调方法的处理请求和对象传递到RMI服务器。服务器在完成处理后调用回调。该设置类似于中描述的设置。
有时,在调用回调方法时,我们会在服务器中得到一个“读取超时”异常。在引发异常之前,回调线程会停顿大约一分钟。
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transpo
我需要为RMI连接添加"test“功能(检查另一端的服务器是否可用/存在)。我已经创建了这个类/bean:
public class MyRmiClientSocketFactory implements RMIClientSocketFactory {
private int timeout;
public void setTimeout(int timeout) {
this.timeout = timeout;
}
@Override
public Socket createSocket(String host, int port) throws IOExcept
我的线程池变得满了,因为大多数线程都在等待套接字连接。如何为jmx连接添加超时
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
- locked <0x05671ad0> (a java.net.SocksSocketImpl)
at java.net.PlainSocketImpl.conne
我得到以下异常跟踪:
java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
java.net.SocketTimeoutException: Read timed out
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:293)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel
我从我的java程序中得到了以下超时异常。
[4/10/14 6:27:02:859 CDT] 00000004 TimeoutManage I WTRN0006W: Transaction 000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F000001454B5F86E80000000100007366C376DBAB11CE46C9F72BF0EF6B270F9458C6856F00000001 has timed out after 300 seconds.
[4/10/14 6:
安装avasty之后,一个学习java的简单java程序就不在我的windows 8机器上工作了。在日志中提供了更多的信息,但我作为java初学者并不真正理解这个问题!我希望有人能帮我!
Greenfoot run started: Thu Oct 24 17:29:03 CEST 2013
Greenfoot version: 2.3.0
Java version 1.7.0_21
Virtual machine: Java HotSpot(TM) Client VM 23.21-b01 (Oracle Corporation)
Running on: Windows 8 6.2 (x86)
我有一个Java RMI系统。这种情况很典型:客户端调用服务器的一个方法。客户端有一个内部计时器,所以如果服务器没有在适当的时间内完成(时间在客户端中指定),那么客户端必须做一些其他的事情。
因此,客户机必须等待服务器在特定的时间内完成其工作,并且在服务器没有完成的情况下执行其他操作(这并不重要)。How can I do this?
我不关心连接超时等问题,假设服务器和客户机是通过RMI连接的,一切都很好,只是服务器的作业可能需要大量的计算并且可能需要一些时间。
非常感谢!
我得到了以下错误(在SystemOut.log在决策中心),正好5分钟后,我们的规则,它一直是5分钟。规则集从决策中心发送到决策服务器,因为我可以在决策服务器中看到规则。
VVV -- Project name :RTE Placement Determination---- VVVVV
[9/26/14 12:42:25:725 CDT] 0000008d Builder I Use of the Rule Common Engine...
[9/26/14 12:42:32:314 CDT] 0000008d IlrRulesetArc I Ruleset archiv
为什么我继续收到以下错误?我试图通过跟踪类似问题的帖子来解决一个问题,但是似乎没有什么效果。
java.rmi.ConnectException: Connection refused to host: 10.0.0.57; nested exception is:
java.net.ConnectException: Operation timed out
at .....
javax.rmi.ssl.SslRMIClientSocketFactory.createSocket(SslRMIClientSocketFactory.java:120)
at sun.rmi.transport
我有很多生产服务器在每个服务器上运行RMI应用程序,还有4个Java and应用程序,例如:
Server A:
RMI app by JNLP file;
webapp_1 (connected by RMI with local RMI app);
webapp_2 (connected by RMI with local RMI app);
webapp_3 (connected by RMI with local RMI app);
webapp_4 (connected by RMI with local RMI app);
Server B:
...the same..OK
所有
我正在创建一个客户机/服务器应用程序,其中我的服务器和客户机可以在同一台机器上,也可以在不同的机器上,但都在ISP下。
我的RMI程序:
-Remote接口:-
//Calculator.java
public interface Calculator
extends java.rmi.Remote {
public long add(long a, long b)
throws java.rmi.RemoteException;
public long sub(long a, long b)
throws java.rmi.RemoteExceptio
我在我的项目中使用RMI,我们有一个RMI服务器和一个RMI客户端。客户端在we应用程序中,因此我们将服务器引用存储在公共常量中。
我想知道,每次我们需要服务器实例时,在注册表中查找服务器的开销有多大。还是最好只查一次,并将其存储在某个常量中。
如果我将其存储在常量中,那么如果重新启动RMI服务器,问题就会开始。因为这个常量变量持有旧的引用,并抛出java.rmi.NoSuchObjectException: no such object in table。
欢迎任何投入。