RMI: no such object in table

 
 
 
Сообщения:94
Добрый день.

Начал разбираться в rmi
и застрял в странном месте

Код стандартный брал из примеров и все заработало (и клиент и сервер на одном хосте OS X )
Переношу рабочий код один в один в виртуальную машину windows 7 ( переношу и клиента и сервер на один хост) и бдыщщщщ не работает
Далее выясняю, что дурит серверная часть на виндоус, так с windows на os x rmi работает
На другой win 7 (уже физическая машина) Та же ситуация (все файрволл отключены, антивирус тоже )
Явно мой косяк, так как столь популярная ОС не может ошибаться

Заранее спасибо
Дмитрий

Вот лог с серверной части
FINE: RMI TCP Connection(5)-192.168.2.5: [192.168.2.5] exception:
java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


Кусок клиента
public RmiClientCollector(String address, Integer port) throws AccessException, RemoteException, NotBoundException {
		this.address = address;
		this.port = port;
		registry = LocateRegistry.getRegistry(address, port);
		service = (RmiInterfaceCollector) registry.lookup(BINDING_NAME);
	}


Кусок сервера
rotected Integer port = 5010;
	protected final String BINDING_NAME = "collector";
	protected boolean procDelete = false;

	public RmiServerCollector(Integer port) throws Exception {
		this.port = port;
		System.out.print("Starting registry...");
		final Registry registry = LocateRegistry.createRegistry(port);
		
		System.out.println(" OK");

		final RmiInterfaceCollector service = new RemoteHelloServiceImpl();
		Remote stub = UnicastRemoteObject.exportObject(service, 0);

		System.out.print("Binding service...");
		registry.bind(BINDING_NAME, stub);
		System.out.println(" OK");
		
		// while (true) {
		// Thread.sleep(Integer.MAX_VALUE);
		// }
	}

Dmitry
 
 
Сообщения:94
Отбой
Победил
прописал сервис, как статик
protected static RmiInterfaceCollector service;
Иначе сборщик мусора весело подчищает интерфейс

Dmitry
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет