Antes de inicializar o servidor RMI vc "setou" o CLASSPATH indicando o local
onde est� o pacote br.com.aopec.gabriel.servers ??????
----- Original Message -----
From: sreng sreng <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, March 04, 2002 7:01 PM
Subject: [java-list] Problemas em 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
>
> java.rmi.UnmarshalException: error unmarshalling arguments; nested
exception
> is:
> java.lang.ClassNotFoundException:
> br.com.aopec.gabriel.servers.RMIPersistenciaImpl_Stub
>
> java.lang.ClassNotFoundException:
> br.com.aopec.gabriel.servers.RMIPersistenciaImpl_Stub
>
> at
>
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
all.java:245)
>
> at
> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:220)
>
> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:354)
>
> at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
>
> at java.rmi.Naming.rebind(Naming.java:160)
>
> at
>
br.com.aopec.gabriel.servers.RMIPersistenciaImpl.main(RMIPersistenciaImpl.ja
va:160)
> **********************************************************************
>
> Informando que a classe stub n�o foi encontrada. De fato, minha classe
> stub � APAGADA durante a execu��o. Algu�m j� teve esse tipo de problema?
> Algu�m pode me ajudar?
>
>
> Segue o c�digo fonte da minha classe servidora, para refer�ncia:
>
> **********************************************************************
> package br.com.aopec.gabriel.servers;
>
> import java.rmi.server.*;
> import java.rmi.*;
> import br.com.aopec.gabriel.objetos.*;
> import br.com.aopec.gabriel.exceptions.*;
> import java.sql.*;
> import java.util.*;
> /**
> * Title: AOPEC Gabriel: Sistema de Mensagens
> * Description: Sistema de compartilhamento e registro de mensagens AOPEC.
> * Copyright: Copyright (c) 2001
> * Company: AOPEC
> * @author Cl�udio Marcelo Silva
> * @version 1.0
> */
>
> public class RMIPersistenciaImpl extends UnicastRemoteObject implements
> RMIPersistencia{
> private Connection conexao;
>
> public RMIPersistenciaImpl()throws RemoteException {
> try{
> Class.forName("oracle.jdbc.driver.OracleDriver");
> conexao =
> DriverManager.getConnection("jdbc:oracle:thin:@164.137.86.230:1521:bd01",
> "alunoJava", "alunoJava");
> }catch(Exception e){
> e.printStackTrace();
> }
> }
>
> public void addUsuario(Usuario user)throws RemoteException{
> try{
> Statement st = conexao.createStatement();
> String values = "'" + user.getID() + "', '" + user.getNome() + "', "
+
> user.getCargoID() + ", '" + user.getEMail() + "', '" + user.getTelefone()
+
> "'";
> st.executeUpdate("Insert into Usuario VALUES(" + values + ")");
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao adicionar usu�rio");
> e.printStackTrace(System.err);
> }
> }
>
> public void removeUsuario(Usuario user)throws RemoteException{
> try{
> Statement st = conexao.createStatement();
> st.executeUpdate("Delete from Usuario where user_id='" + user.getID()
> + "'");
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao remover usuario");
> e.printStackTrace(System.err);
> }
> }
>
> public void registraMensagem(AbstractMsg msg)throws RemoteException{
> try{
> Statement st = conexao.createStatement();
> String values = "'" + msg.getID() + "', " + msg.getTitulo() + "', '"
+
> msg.getCorpo() + "', '" + msg.getRemID() + "', " + msg.getDestID() + "'";
> st.executeUpdate("Insert Into Mensagem values(" + values + ")");
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao registrar mensagem");
> e.printStackTrace(System.err);
> }
> }
>
> public AbstractMsg[] listaMensagensUsuario(Usuario user)throws
> RemoteException{
> AbstractMsg[] msgArray = null;
> try{
> Statement st = conexao.createStatement();
> ResultSet rsConta = st.executeQuery("Select Count(*) AS Conta FROM
> Mensagem WHERE Destino_id = '" + user.getID() + "'");
> int contagem = rsConta.getInt("Conta");
> rsConta.close();
> ResultSet rs = st.executeQuery("SELECT Corpo, Titulo FROM Mensagem
> WHERE Destino_id = '" + user.getID() + "'");
> msgArray = new AbstractMsg[contagem];
> int index = 0;
> while(rs.next()){
> AbstractMsg msg = new Mensagem();
> msg.setCorpo(rs.getString("corpo"));
> msg.setTitulo(rs.getString("titulo"));
> msgArray[index] = msg;
> index++;
> }
> rs.close();
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao listar mensagem para o usuario " +
> user.getNome() + "@" + user.getID());
> e.printStackTrace(System.err);
> }
> return msgArray;
> }
>
> public AbstractMsg[] listaMensagensEnviadas(Usuario user)throws
> RemoteException{
> AbstractMsg[] msgArray = null;
> try{
> Statement st = conexao.createStatement();
> ResultSet rsConta = st.executeQuery("Select Count(*) AS Conta FROM
> Mensagem WHERE Rem_id = '" + user.getID() + "'");
> int contagem = rsConta.getInt("Conta");
> rsConta.close();
> ResultSet rs = st.executeQuery("SELECT Corpo, Titulo FROM Mensagem
> WHERE Rem_id = '" + user.getID() + "'");
> msgArray = new AbstractMsg[contagem];
> int index = 0;
> while(rs.next()){
> AbstractMsg msg = new Mensagem();
> msg.setCorpo(rs.getString("corpo"));
> msg.setTitulo(rs.getString("titulo"));
> msgArray[index] = msg;
> index++;
> }
> rs.close();
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao listar mensagem para o usuario " +
> user.getNome() + "@" + user.getID());
> e.printStackTrace(System.err);
> }
> return msgArray;
> }
>
> public AbstractMsg[] listaMensagensRoot(Usuario user)throws
> RemoteException, NotRootException{
> if(user.getID().equals("0")) throw new NotRootException();
> AbstractMsg[] msgArray = null;
> try{
> Statement st = conexao.createStatement();
> ResultSet rsConta = st.executeQuery("Select Count(*) AS Conta FROM
> Mensagem");
> int contagem = rsConta.getInt("Conta");
> rsConta.close();
> ResultSet rs = st.executeQuery("SELECT Corpo, Titulo FROM Mensagem");
> msgArray = new AbstractMsg[contagem];
> int index = 0;
> while(rs.next()){
> AbstractMsg msg = new Mensagem();
> msg.setCorpo(rs.getString("corpo"));
> msg.setTitulo(rs.getString("titulo"));
> msgArray[index] = msg;
> index++;
> }
> rs.close();
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao listar mensagem para o usuario Root");
> e.printStackTrace(System.err);
> }
> return msgArray;
> }
>
> public void removeMensagem(AbstractMsg msg)throws RemoteException{
> try{
> Statement st = conexao.createStatement();
> st.executeUpdate("Delete from Mensagem where msg_id='" + msg.getID()
+
> "'");
> st.close();
> }catch(Exception e){
> System.err.println("Falha ao apagar a mensagem " + msg.getTitulo() +
> "@" + msg.getID());
> e.printStackTrace(System.err);
> }
> }
>
> public static void main(String args[]){
> try{
> System.out.println("Iniciando servi�o de persistencia...");
> RMIPersistenciaImpl server = new RMIPersistenciaImpl();
> Naming.rebind("//164.137.86.103/PServer", server);
> }catch(Exception e){
> System.err.println("Falha ao iniciar servidor");
> e.printStackTrace(System.err);
> }
> }
>
> public void finalize(){
> try{
> conexao.close();
> }catch(Exception e){
> e.printStackTrace(System.err);
> }
> System.gc();
> }
> }
> ************************************************************************
>
> _________________________________________________________________
> O MSN Photos � o jeito mais f�cil de compartilhar, editar e imprimir suas
> fotos preferidas: http://photos.msn.com.br/support/worldwide.aspx
>
>
> ------------------------------ 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]
> -------------------------------------------------------------------------
>
------------------------------ 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]
-------------------------------------------------------------------------