powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Не получается зарегить класс в RMI-реестре.
4 сообщений из 4, страница 1 из 1
Не получается зарегить класс в RMI-реестре.
    #34820349
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Не получается зарегить класс в RMI-реестре.
    #34820509
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Sarin" <nospam@sql.ru>;

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


а то
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Не получается зарегить класс в RMI-реестре.
    #34821966
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чёт не помогло. Добавил в 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
Не получается зарегить класс в RMI-реестре.
    #34821972
Sarin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведение кода к такому виду спасло меня от эксепшина:

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


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