java.сеть.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, записанных файлов.
далее я компилирую все эти файлы.Затем я создаю stub
используя rmic AddServerImpl
. После этого я запускаю реестр rmi на стороне сервера, используя start rmiregistry
. Затем я запускаю сервер с помощью java AddServer
и, наконец, клиент, используя java AddClient 27.60.200.80 5 9
.
но ничего не происходит
исключение, которое выбрасывается на стороне клиента java.net.ConnectException : connection timed out : connect
в чем причина и как я могу решить это?
на клиентской машине это следующее .class files AddClient.class AddServerImpl.class AddServerImpl_Stub.class
и на стороне сервера AddServer.class AddServerImpl.class AddServerImpl_Stub.class AddServerIntf.class
5 ответов
сообщение об ошибке говорит все: ваше соединение истекло. Это означает, что ваш запрос не получил ответа в течение некоторого (по умолчанию) периода времени. Одной из причин, по которой не было получено ответа, скорее всего, является:
- a) IP/домен или порт неверны
- b) IP / домен или порт (i.e service) вниз
- c) IP / домен занимает больше времени, чем ваш тайм-аут по умолчанию для ответа
- D) у вас есть брандмауэр, который блокирует запросы или ответы на любой порт, который вы используете
- e) у вас есть брандмауэр, который блокирует запросы к этому конкретному хосту
- f) ваш доступ в интернет вниз
обратите внимание, что брандмауэры и блокировка портов или IP-адресов могут быть установлены вашим провайдером
номер (1): IP был неправильным - это правильный ответ. Файл/etc / hosts (a.к. a. C:\Windows\system32\drivers\etc\hosts ) была неправильная запись для имени локального компьютера. Исправлен файл "hosts", и Camel работает очень хорошо. Спасибо за указатель.
Если вы указываете конфигурацию на домен (например, fabrikam.com), сделайте NSLOOKUP, чтобы убедиться, что все отвечающие IPs действительны и могут быть подключены к порту 389:
NSLOOKUP fabrikam.com
Test-NetConnection <IP returned from NSLOOKUP> -port 389
исключение : Ява.чистая.Исключения connectexception
Это означает, что ваш запрос не получает ответа от сервера в оговоренное время. И их несколько причин для этого исключения:
- слишком много запросов перегрузка сервера
- запрос потери пакетов из-за неправильной конфигурации сети или перегрузки линии
- иногда брандмауэр потребляет пакет запроса, прежде чем разорвать получение
- также зависит от конфигурации потоков пула соединений и текущее состояние пула соединений
- ответный пакет потерян во время перехода
Если вы ожидаете отложенного ответа от целевой системы и чувствуете, что DevTest завершает соединение, вы можете добавить ниже два свойства в local.свойства файла и перезапустить компоненты:
lisa.http.timeout.connection=0
lisa.http.timeout.socket=0
lisa.http.timeout.connection
http timeout (в миллисекундах) - чтобы продлить тайм-аут ожидания на неопределенный срок, установите значения в ноль.
Default: 15000
lisa.http.timeout.socket
время ожидания HTTP (в миллисекундах). Чтобы продлить время ожидания до бесконечности, установите значение на ноль.
Default: 180000