|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
RMI NoSuchObjectException
Bom dia javeiros,
Estou fazendo alguns testes com RMI do Java, que é muito bom por sinal, mas estou tendo alguns problemas... Se eu não conseguir expressar direito o erro me desculpe, mas é difícil explicar por e-mail... São dois casos... um dá exceção e o outro não está rodando remotamente como deveria com o RMI... Segue: O ServerFactory é uma "fábrica" de Servidores de anagramas, bem simples... ele tem um método .createAnagramServer() que retorna uma interface Server com alguns métodos bem simples, com trabalho de Strings. Obs.: Os testes para saber se rodou remoto ou não foi com System.out... quando chamo um método no cliente ele dá o out no servidor... ou não... Este é o lado Servidor: //Cria o factory de server ServerFactory asFac = new AnagramServerFactory(); //Registra o RMI na porta Registry r = LocateRegistry.createRegistry(INI.PORT); //Deveria enviar o Factory para o RMI, para acesso remoto mas... /*Se fizer assim, bind do stub, dá pau quando vai rodar no cliente quando chamar o método createAnagramServer() da factory... pelo que li na internet é porque o GarbageColector removeu a referência do Objeto no Servidor e não pode enviar ao Cliente, mas é improvável pois estou armazenando as referências em uma Fila... java.rmi.NoSuchObjectException: no such object in table*/ Remote stub = UnicastRemoteObject.exportObject(asFac, INI.PORTA); r.bind("ServerFactory", stub); StackTrace: java.rmi.NoSuchObjectException: no such object in table at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:178) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132) //Envia o Factory para o RMI, mas os Servers enviados pelo factory não rodam remoto... /*Se fizer assim, bind da Factory direto, não dá pau, o factory roda no servidor mas os objetos enviados rodam no cliente... não é isso que eu quero, eles teriam que rodar no Servidor, só o factory roda no Servidor...*/ UnicastRemoteObject.exportObject(asFac, INI.PORTA); r.bind("ServerFactory", asFac); --------------------------------------------------------------------- To unsubscribe, e-mail: java-list-unsubscribe@... For additional commands, e-mail: java-list-help@... |
| Free embeddable forum powered by Nabble | Forum Help |