Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается зарегить класс в RMI-реестре. / 4 сообщений из 4, страница 1 из 1
24.09.2007, 00:37:00
    #34820349
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается зарегить класс в RMI-реестре.
Код: plaintext
1.
2.
javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
        java.lang.ClassNotFoundException: rmiserver.Product]

Понятно, что беда в интерфейсе Product. Надо ли, чтобы джарник с реализацией этого интерфейса был прописан в класспасе?


Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
24.09.2007, 09:17:15
    #34820509
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается зарегить класс в RMI-реестре.
"Sarin" <nospam@sql.ru>;

Надо ли, чтобы джарник с реализацией этого интерфейса был прописан в класспасе?


а то
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
24.09.2007, 16:07:59
    #34821966
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается зарегить класс в RMI-реестре.
Чёт не помогло. Добавил в classpatch джарник с интерфейсом. Стартую rmiregistry, запускаю такое своё приложение:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 package  rmiserver;

 import  javax.naming.Context;
 import  javax.naming.InitialContext;

/**
 *
 * @author sarin2.0
 */
 public   class  Main {
	
	/** Creates a new instance of Main */
	 public  Main() {
	}
	
	/**
	 * @param args the command line arguments
	 */
	 public   static   void  main(String[] args) {
		// TODO code application logic here
		 try  {
			System.out.println("Hi!!!");
			ProductImpl p1 =  new  ProductImpl("Hi");
			Context nc =  new  InitialContext();
			nc.bind("rmi:hi", p1);
		}  catch  (Exception e) {
			e.printStackTrace();
		}
		
	}
	
}
И получаю вот что:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Hi!!!

javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.1.3; nested exception is: 
        java.net.ConnectException: Connection refused: connect]
        at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:122)
        at com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:208)
        at javax.naming.InitialContext.bind(InitialContext.java:359)
        at rmiserver.Main.main(Main.java:34)

Caused by: java.rmi.ConnectException: Connection refused to host: 192.168.1.3; nested exception is: 
        java.net.ConnectException: Connection refused: connect
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
        at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
        at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
        at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
        at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:116)
        ... 3 more

Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:364)
        at java.net.Socket.connect(Socket.java:507)
        at java.net.Socket.connect(Socket.java:457)
        at java.net.Socket.<init>(Socket.java:365)
        at java.net.Socket.<init>(Socket.java:178)
        at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
        at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
        ... 8 more
Причём в списке запущеных процессов появляется моё приложение.

Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
24.09.2007, 16:09:19
    #34821972
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не получается зарегить класс в RMI-реестре.
Приведение кода к такому виду спасло меня от эксепшина:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
 package  rmiserver;

 import  java.rmi.registry.LocateRegistry;
 import  javax.naming.Context;
 import  javax.naming.InitialContext;

/**
 *
 * @author sarin2.0
 */
 public   class  Main {
	
	/** Creates a new instance of Main */
	 public  Main() {
	}
	
	/**
	 * @param args the command line arguments
	 */
	 public   static   void  main(String[] args) {
		// TODO code application logic here
		 try  {
			LocateRegistry.createRegistry( 1099 );
			ProductImpl p1 =  new  ProductImpl("Hi");
			Context nc =  new  InitialContext();
			nc.bind("rmi:hi", p1);
			//nc.bind("rmi:hi2", "test");
		}  catch  (Exception e) {
			e.printStackTrace();
		}		
	}	
}



Код: plaintext
Meo voto
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается зарегить класс в RMI-реестре. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]