Me ajudem com rmi!

estou tentand fazer uma inserção mais esta dando erro na hora de inserir…
vou postr tdo codigo:

pacote conexão:

[code]package conexao;

import domino.usuarios;
import java.rmi.*;

public class Servidor{
public static void main(String args[]) {
try {
usuarios usu = new usuarios();
Naming.rebind("//localhost/conexao", usu);
System.out.println(“Cadastro do objeto usu no registry”);
} catch (Exception e) {
System.out.println("erro: " +e.getMessage());
}
}
}[/code]

[code]public class conexao {
private static Connection conn1;
private static String driver;
private static String url;
private static String user;
private static String password;

public conexao(){
    driver = "org.postgresql.Driver";
    url = "jdbc:postgresql://localhost/pfc";
    user = "postgres";
    password = "jhonatan";
}

/**
 * Método responsável por realizar a conexão com o BD
 * @return connection
 * @throws java.lang.ClassNotFoundException
 * @throws java.sql.SQLException
 */
public static Connection getConnection() throws ClassNotFoundException, SQLException{
    Class.forName("org.postgresql.Driver");
    conn1 = DriverManager.getConnection
   ("jdbc:postgresql://localhost/pfc","postgres","jhonatan");
    return conn1;

}

}
[/code]

pacote DAO:

[code]package dao;

import conexao.conexao;
import domino.usuarios;
import java.rmi.;
import java.sql.
;
import java.sql.SQLException;
import java.io.IOException;
import java.rmi.server.UnicastRemoteObject;

/**
*

  • @author jhonatan
    */
    public class cliente {
    public boolean inserir()throws RemoteException {
    usuarios usuarios = new usuarios();

     try {
         //Obtendo a conexão com o BD
         Connection conn1 = conexao.getConnection();
    
         //Criando a string com sql a ser executada
         String sql = "INSERT INTO cliente VALUES ( ?, ? )";
    
         //Tratando a sql  a ser executada
         PreparedStatement pst = conn1.prepareStatement( sql );
         //Definindo o primeiro parâmetro
         pst.setInt(1, usuarios.getCodigocliente());
         //Definindo o segundo parâmetro
         pst.setString(2, usuarios.getData());
    
         //Definindo o terceiro parâmetro
    
         //Executando a sql
         pst.executeUpdate();
    
         //Fechando o tratamento da sql
         pst.close(); }
    

catch (Exception e){ return false;
}return true;}

}[/code]

public interface Icliente extends Remote { public boolean inserir()throws RemoteException; }

pacote Dominio:

[code] */
public class usuarios extends UnicastRemoteObject implements Iusuarios {
private int codigocliente;
private String Data;

public usuarios() throws RemoteException
{
}

public int getCodigocliente() {
    return codigocliente;
}

/**
 * @param codigocliente the codigocliente to set
 */
public void setCodigocliente(int codigocliente) {
    this.codigocliente = codigocliente;
}

/**
 * @return the Data
 */
public String getData() {
    return Data;
}

/**
 * @param Data the Data to set
 */
public void setData(String Data) {
    this.Data = Data;
}

}[/code]

public interface Iusuarios extends Remote{ public void setCodigocliente(int codigocliente) throws RemoteException; public void setData(String Data)throws RemoteException; }

Visão

[code]private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

    try {

// não pode instanciar
/*usuarios usuario = new usuarios();

        usuario.setCodigocliente(Integer.parseInt(tfcodigo.getText()));*/ //       usuario.setData(tfdata.getText());
        Icliente cliente = (Icliente)Naming.lookup ("//localhost/conexao");
            Iusuarios iusu = (Iusuarios)Naming.lookup ("//localhost/conexao");

            iusu.setCodigocliente(Integer.parseInt(tfcodigo.getText()));
            iusu.setData(tfdata.getText());
        if(cliente.inserir())

			JOptionPane.showMessageDialog(null,"produto inserido com sucesso");
		else
 		JOptionPane.showMessageDialog(null,"produto não inserido");


    } catch (Exception h) {
        h.printStackTrace();
     		JOptionPane.showMessageDialog(null,h.getMessage());
    }

[/code]

sim, mas qual o erro?

que erro que ele joga na hora de inserir?

segue o erro:

run: java.rmi.NotBoundException: conexao at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:106) at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source) at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:386) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) 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:359) at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) at java.rmi.Naming.lookup(Naming.java:84) at visão.NewJFrame.jButton1ActionPerformed(NewJFrame.java:102) at visão.NewJFrame.access$000(NewJFrame.java:24) at visão.NewJFrame$1.actionPerformed(NewJFrame.java:49) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Bom, ainda tem um pequeno errinho antes. Dá uma olhada bem no seu código:


    package dao;  
      
    import conexao.conexao;  
    import domino.usuarios;  
    import java.rmi.*;  
    import java.sql.*;  
    import java.sql.SQLException;  
    import java.io.IOException;  
    import java.rmi.server.UnicastRemoteObject;  
     
     
   /** 
   * 
   * @author jhonatan 
   */  
   public class cliente  {  
   public boolean inserir()throws  RemoteException  {  
          
          //VOCÊ NÃO DEVERIA RECEBER USUARIO NO CONSTRUTOR?   
          usuarios usuarios = new usuarios();  
     
           try {  
               //Obtendo a conexão com o BD  
               Connection conn1 = conexao.getConnection();  
     
               //Criando a string com sql a ser executada  
               String sql = "INSERT INTO cliente VALUES ( ?, ? )";  
     
               //Tratando a sql  a ser executada  
               PreparedStatement pst = conn1.prepareStatement( sql );  
               
               //Aqui o campo codigoCliente esta com o valor 0
                pst.setInt(1, usuarios.getCodigocliente());  
               //Aqui o campo data esta como null
               pst.setString(2, usuarios.getData());  
     
               //Definindo o terceiro parâmetro  
     
               //Executando a sql  
               pst.executeUpdate();  
     
               //Fechando o tratamento da sql  
               pst.close(); }  
     
   catch (Exception e){ return false;  
           }return true;}  
     
     
     
   }  

Você instanciou o objeto usario dentro da classe, mas ainda não setou os valores dele. Esse pedaço pode vir a dar pau no futuro.

Deve estar acontecendo algo parecido aqui:

usuarios usu = new usuarios();  
Naming.rebind("//localhost/conexao", usu);  

Veja que você instanciou usuario, ateh aih tudo bem. Mas você não setou valores pra ele.
E no código acima você mandou “reamarrar” conexao, mas ela ainda não está “amarrada”.
É este o erro.

mais não foi setado na visão? da uma ollhada… senão … como seria a outra forma