erro RMI no Java 7 [RESOLVIDO]

1. erro RMI no Java 7 [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 12/10/2013 - 16:01h

Alguém conseguiu executar o exemplo RMI no Java 7 ?

O Java 7 esta configurado no PATH como JAVA_HOME corretamente, mas os comandos rmic e rmiregistry não são reconhecidos, porém se apontar o caminho $JAVA_HOME/bin/rmic e $JAVA_HOME/bin/rmiregistry é possível, mas apenas gera arquivo Stub.class e não Skel.class

Estou fazendo os passos abaixo:

$javac Hello.java
$javac HelloServidora.java
$rmic não é reconhecido no Java 7, então executo assim $JAVA_HOME/bin/rmic HelloServidora

ls
AplicacaoCliente.class Hello.class HelloServidora_Stub.class
AplicacaoCliente.java Hello.java README.txt
AplicacaoServidora.class HelloServidora.class
AplicacaoServidora.java HelloServidora.java

$javac AplicacaoServidora.java AplicacaoCliente.java
$rmiregistry não é reconhecido no Java 7, então executo assim $JAVA_HOME/bin/rmiregistry

ao executar: $java AplicacaoServidora
Erro Remoto: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: HelloServidora_Stub


No Java 7 pelo visto deve ter alguma alteração na execução do RMI.

Se caso alguém já executou aplicação RMI no Java 7,então diga qual passo descrito acima que é diferente ?


  


2. Re: erro RMI no Java 7 [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 12/10/2013 - 19:50h

Com base da informação acima segue os códigos...

Hello.java http://pastebin.com/WiGL7wNn

HelloServidora.java http://pastebin.com/HBWSt6QP

AplicacaoServidora.java http://pastebin.com/Cq6hVfav

AplicacaoCliente.java http://pastebin.com/BQ0DxvLS


Passos para criar Java RMI

$javac Hello.java
$javac HelloServidora.java
$rmic HelloServidora
$javac AplicacaoServidora.java AplicacaoCliente.java
$rmiregistry
$java AplicacaoServidora

Erro Remoto: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: HelloServidora_Stub

Os arquivos .java e .class estão no mesmo diretório
ls
AplicacaoCliente.class Hello.class HelloServidora_Skel.class
AplicacaoCliente.java Hello.java HelloServidora_Stub.class
AplicacaoServidora.class HelloServidora.class README.txt
AplicacaoServidora.java HelloServidora.java


Só que no Java 7 tem esse erro. Favor testem e verifiquem também para entender a situação...


3. Re: erro RMI no Java 7 [RESOLVIDO]

Reginaldo de Matias
saitam

(usa Slackware)

Enviado em 13/10/2013 - 19:38h

Resolvido

Depois de olhar API Java7 do RMI, verifiquei que é necessário passar parâmetros no comando rmiregistry informando no final o caminho absoluto onde se encontra aplicação RMI.

Assim segue os passos para o exemplo simples RMI deste post

$javac Hello.java
$javac HelloServidora.java
$rmic HelloServidora
$javac AplicacaoServidora.java
$javac AplicacaoCliente.java
O próximo comando é o pulo do gato
$rmiregistry -J-Djava.rmi.server.codebase=file:///home/usuario/AplicacaoRMI/ExemploSimplesRMI/

Agora só executar o servidor e cliente em dois terminais respectivamente.
Terminal Servidor: $java Servidor
Antes sem o parâmetro passado no comando rmiregistry dava erro informando que não encontrava HelloServidora_Stub.class, mas estava no mesmo diretório, porém faltava passar os parâmetros.

Terminal Cliente: $java Cliente


PS: Testado no java version "1.7.0_03"







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts