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] 
-------------------------------------------------------------------------

Responder a