java.net.ConnectException:连接超时:连接?

我在我的代码中使用了RMI:

import java.rmi.*; public interface AddServerIntf extends Remote { double add(double d1,double d2) throws RemoteException; } 

 import java.rmi.*; import java.rmi.server.*; public class AddServerImpl extends UnicastRemoteObject implements AddServerIntf { public AddServerImpl() throws RemoteException { } public double add(double d1,double d2) throws RemoteException { return d1+d2; } } 

 import java.net.*; import java.rmi.*; public class AddServer { public static void main(String args[]) { try { AddServerImpl addServerImpl=new AddServerImpl(); Naming.rebind("AddServer",addServerImpl); } catch(Exception exc) { System.out.println(exc); } } } 

 import java.rmi.*; public class AddClient { public static void main(String args[]) { try { String Url="rmi://"+args[0]+"/AddServer"; AddServerIntf addServerIntf=(AddServerIntf)Naming.lookup(Url); System.out.println("The first number is "+args[1]); double d1=Double.valueOf(args[1]).doubleValue(); System.out.println("The second number is: "+args[2]); double d2=Double.valueOf(args[2]).doubleValue(); System.out.println("The Sum is: "+addServerIntf.add(d1,d2)); } catch(Exception exc) { System.out.println(exc); } } } 

这些是4个.java文件。

接下来我编译所有这些文件。然后我使用rmic AddServerImpl创建一个stub 。 之后,我使用start rmiregistry在服务器端启动rmi注册表。 然后我使用java AddServer启动服务器,最后使用java AddClient 27.60.200.80 5 9客户端java AddClient 27.60.200.80 5 9但没有任何反应

客户端抛出的exception是java.net.ConnectException : connection timed out : connect

是什么原因,我该如何解决这个问题?

在客户端计算机上,这些是以下.class文件AddClient.class AddServerImpl.class AddServerImpl_Stub.class和服务器端AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class

错误消息说明了一切:您的连接超时。 这意味着您的请求未在某个(默认)时间范围内得到响应。 没有收到回复的原因可能是:

  • a)IP /域或端口不正确
  • b)IP /域或端口(即服务)已关闭
  • c)IP /域的响应时间超过默认超时时间
  • d)您的防火墙阻止您正在使用的任何端口上的请求或响应
  • e)您有防火墙阻止对该特定主机的请求
  • f)您的互联网访问已关闭

请注意,ISP可能会安装防火墙和端口或IP阻止

数字(1):IP不正确 – 是正确的答案。 / etc / hosts文件(又名C:\ Windows \ system32 \ drivers \ etc \ hosts)的本地计算机名称条目不正确。 更正了’hosts’文件,Camel运行得非常好。 谢谢你的指针。

如果您将配置指向域(例如fabrikam.com),请执行NSLOOKUP以确保所有响应的IP都有效,并且可以连接到端口389:

 NSLOOKUP fabrikam.com Test-NetConnection  -port 389 

例外:java.net.ConnectException

这意味着您的请求未在规定的时间内收到服务器的响应。 他们是这个例外的一些原因:

  • 请求超载服务器的请求太多
  • 由于错误的网络配置或线路过载而请求丢包
  • 有时防火墙在服务器获取之前消耗请求数
  • 还取决于线程连接池配置和连接池的当前状态
  • 转换期间响应数据包丢失

如果您希望目标系统的响应延迟并且认为DevTest正在结束连接,那么您可以将以下两个属性添加到local.properties文件并重新启动组件:

 lisa.http.timeout.connection=0 lisa.http.timeout.socket=0 lisa.http.timeout.connection 

HTTP超时(以毫秒为单位) – 要将超时延长为无限期等待,请将值设置为零。

 Default: 15000 lisa.http.timeout.socket 

HTTP超时(以毫秒为单位)。 要将超时延长为无限期等待,请将值设置为零。

 Default: 180000