Ol�...(sreng sreng?)
Para que um stub seja encontrado pelo RMIRegistry ele precisa estar no seu
classpath ou codebase. A menos que o CLASSPATH da sua aplica��o fa�a parte
do CLASSPATH do RMIRegistry (geralmente n�o � o caso) ele n�o vai achar o
stub e vai procurar no codebase que precisa ser definido na sua aplica��o
(ou via linha de comando ao executar o servidor). O codebase tamb�m serve
para que um cliente remoto possa fazer download do seu stub.
No exemplo abaixo, usado em um JAR com CLASSPATH �nico, o RMI registry ver�
os arquivos que estiverem no CLASSPATH da aplica��o.
java.util.Properties props = System.getProperties();
props.setProperty("java.rmi.server.codebase", "file://" +
props.getProperty("java.class.path"));
Normalmente, em vez de file:// voc� usaria http://, ftp:// ou outro
protocolo para que seus clientes remotos possam baixar os stubs.
Observe que o c�digo acima pode falhar se java.class.path tiver mais de um
caminho (� preciso testar isto antes e partir o string em caminhos
separados. O code base pode ter v�rios caminhos. � s� separar com espa�os:
props.setProperty("java.rmi.server.codebase", "http://abc.com/stubs.jar
http://xyz.com/morestubs/"));
Voc� tamb�m pode passar a propriedade na linha de comando ou guardar em um
arquivo .properties:
java -Djava.rmi.server.codebase=http://abc/coisas/stubs.jar
myrmi.server.Server
java -Djava.rmi.server.codebase="http://abc/coisas/stubs.jar
http://xyz/stubs/" myserver.Server
Importante: se o codebase contiver um diret�rio � necess�rio que termine em
"/" (j� perdi um domingo inteiro por n�o observar esse detalhe).
[]s
Helder.
--
Helder da Rocha
Web Consultant
www.argonavis.com.br
S�o Paulo
----- Original Message -----
From: "sreng sreng" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, March 04, 2002 2:04 PM
Subject: [java-list] Servidor RMI...
>
> Ol�, colegas da lista:
>
> Estou desenvolvendo um servidor RMI para um projeto interno. Mas tenho
um
> problema muito chato. Compilo a classe do servidor (implementa��o da minha
> interface remota) com sucesso e construo a classe stub (atrav�s de rmic
> -v1.2 nomeDaClasse). Quando executo o servidor, esta exec��o:
>
> ********************************************************************
> java.rmi.ServerException: RemoteException occurred in server thread;
nested
> exception is:
> java.rmi.UnmarshalException: error unmarshalling arguments; nested
> exception is:
> java.lang.ClassNotFoundException:
> br.com.aopec.gabriel.servers.RMIPersistenciaImpl_Stub
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------