juniorsatanas 18 de abr. de 2010
eu Fa;o assim?
nutec . org . ce . Servido
nutec . org . ce . Cliente
nutec . org . ce . Acoes
nutec . org . ce . Retorno
gisa_screen 18 de abr. de 2010
gisa_screen 18 de abr. de 2010
veja o erro...Criei as classes Interface(classe Procura cd)...q tem o método procura() , a classe que é extends de Unicast....e implements da Interfa...(classe ProcuracdService), e a classe cd...o servidoRmi e a do ClienteRMiI q com erro mostrado nas linhas abaixo...
public class ClienteRMI {
ProcuraCD service = ( ProcuraCD ) Naming . lookup ( "rmi://localhost/cd/procura" );
Cd cd = service . procura ( 01 );
System . out . println ( "cd.getTitulo" );
}
gisa_screen 18 de abr. de 2010
resolvi o problema acima, a inteligencia colocou entre aspas o métodos e esqueci dos parenteses…resolvi rs (cd.getTitulo());
bem o servidor rodou legal, agora do Cliente acontece esses minimos detalhes :?
Exception in thread “ main ” java . rmi . UnmarshalException : error unmarshalling return ; nested exception is :
java . io . WriteAbortedException : writing aborted ; java . io . NotSerializableException : servidor . dominio . Cd
at sun . rmi . server . UnicastRef . invoke ( Unknown Source )
at java . rmi . server . RemoteObjectInvocationHandler . invokeRemoteMethod ( Unknown Source )
at java . rmi . server . RemoteObjectInvocationHandler . invoke ( Unknown Source )
at $ Proxy0 . procura ( Unknown Source )
at cliente . controle . ClienteRMI . main ( ClienteRMI . java : 11 )
Caused by : java . io . WriteAbortedException : writing aborted ; java . io . NotSerializableException : servidor . dominio . Cd
at java . io . ObjectInputStream . readObject0 ( Unknown Source )
at java . io . ObjectInputStream . readObject ( Unknown Source )
at sun . rmi . server . UnicastRef . unmarshalValue ( Unknown Source )
… 5 more
Caused by : java . io . NotSerializableException : servidor . dominio . Cd
at java . io . ObjectOutputStream . writeObject0 ( Unknown Source )
at java . io . ObjectOutputStream . writeObject ( Unknown Source )
at sun . rmi . server . UnicastRef . marshalValue ( Unknown Source )
at sun . rmi . server . UnicastServerRef . dispatch ( Unknown Source )
at sun . rmi . transport . Transport $ 1 . run ( Unknown Source )
at java . security . AccessController . doPrivileged ( Native Method )
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 $ Worker . runTask ( Unknown Source )
at java . util . concurrent . ThreadPoolExecutor $ Worker . run ( Unknown Source )
at java . lang . Thread . run ( Unknown Source )
o que será tudo isso???
System.out.println(“ainda aprendo java”)
kemperacc 18 de abr. de 2010
gisa_screen:
resolvi o problema acima, a inteligencia colocou entre aspas o métodos e esqueci dos parenteses…resolvi rs (cd.getTitulo());
bem o servidor rodou legal, agora do Cliente acontece esses minimos detalhes :?
Exception in thread “ main ” java . rmi . UnmarshalException : error unmarshalling return ; nested exception is :
java . io . WriteAbortedException : writing aborted ; java . io . NotSerializableException : servidor . dominio . Cd
at sun . rmi . server . UnicastRef . invoke ( Unknown Source )
at java . rmi . server . RemoteObjectInvocationHandler . invokeRemoteMethod ( Unknown Source )
at java . rmi . server . RemoteObjectInvocationHandler . invoke ( Unknown Source )
at $ Proxy0 . procura ( Unknown Source )
at cliente . controle . ClienteRMI . main ( ClienteRMI . java : 11 )
Caused by : java . io . WriteAbortedException : writing aborted ; java . io . NotSerializableException : servidor . dominio . Cd
at java . io . ObjectInputStream . readObject0 ( Unknown Source )
at java . io . ObjectInputStream . readObject ( Unknown Source )
at sun . rmi . server . UnicastRef . unmarshalValue ( Unknown Source )
… 5 more
Caused by : java . io . NotSerializableException : servidor . dominio . Cd
at java . io . ObjectOutputStream . writeObject0 ( Unknown Source )
at java . io . ObjectOutputStream . writeObject ( Unknown Source )
at sun . rmi . server . UnicastRef . marshalValue ( Unknown Source )
at sun . rmi . server . UnicastServerRef . dispatch ( Unknown Source )
at sun . rmi . transport . Transport $ 1 . run ( Unknown Source )
at java . security . AccessController . doPrivileged ( Native Method )
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 $ Worker . runTask ( Unknown Source )
at java . util . concurrent . ThreadPoolExecutor $ Worker . run ( Unknown Source )
at java . lang . Thread . run ( Unknown Source )
o que será tudo isso???
System.out.println(“ainda aprendo java”)
Sua classe servidor.dominio.Cd deve implementar Serializable
public class Cd implements Serializable {
//bla bla bla
}
Toda classe que for transferida via rede deve implementar Serializable ou extender um classe que implemente Serializable…
Tanto que o erro foi… NotSerializableException
[]s
Boa Sorte
gisa_screen 18 de abr. de 2010
Cara eu li um artigo e logo coloquei o implements seriazalible na classe CD…mas o erro persiste… :x
kemperacc 19 de abr. de 2010
Nas duas aplicacoes esta usando a mesma versao da classe?
As vezes voce atualizou a classe CD da sua aplicacao cliente e nao atualizaou do servidor, ou vice-versa
Uma das duas esta incorreta.
Depois de voce compilar a classe CD, voce tem que “joga-la” para a outra aplicacao para as duas aplicacoes rodarem a mesma versao da classe.
[]s
Kemper
gisa_screen 19 de abr. de 2010
Desculpe, mas como assim? Acho que o problema está na interface ProcuraCd...la eu só tenho o método procura...
na classe clienteRMI eu criei objeto
Proc uraCD service = ( ProcuraCD ) Naming.lookup ( "rmi://localhost/cd/procura" ) ;
Cd cd = service.procura ( 01 ) ;
System.out.println ( "cd.getTitulo" ) ;
está correto...? eu usar a classe ProcuraCd ? :? :?