Erro ao executar RMIC Servidor

4 respostas
J

Boa tarde a todos do GUJ

Bom galera meu problema é o seguinte, quando tento executar o meu servidor (rmic servidor) dá o seguinte erro abaixo:

error: File .\servidor.class does not contain type servidor as expected, but type agendarmi.servidor. Please remove the file, or make sure it appears in the correct subdirectory of the class path.
error: Class servidor not found.
2 errors

Já rodei o google inteiro atrás de uma solução para esse ERRO e nada de encontrar uma solução, alguém tem idéia do que seja ?!

package agendarmi;

import java.rmi.*;
import java.rmi.server.*;
import java.util.ArrayList;

public class servidor extends UnicastRemoteObject implements AgendaInterface {
    
    public servidor() throws RemoteException
    {
        super();
    }

    //Metodo para adicionar os contatos
    public String cadastrar(Contato c1) throws RemoteException{
        String msg = "";
        try
        {
            operacoes operacao = new operacoes();
            c1.setNome(operacao.getContato().getNome());
            c1.setTelefone(operacao.getContato().getTelefone());
            c1.setEmail(operacao.getContato().getEmail());
            c1.setApelido(operacao.getContato().getApelido());
            ContatoDao dao = new ContatoDao();
            dao.adiciona(c1);
            System.out.println("Adicionado com Sucesso!");
            msg = "Ok";
        } catch (Exception ex) {
            System.out.println("Não foi possivel cadastrar " + ex);
            msg = "erro";
        }
         return msg;
    }

    //Metodo para Listar os contatos
    public ArrayList listar(){
        return null;
    }

   //Metodos para Excluir os Contatos
    public String excluir(){
        return null;
    }

    //Metodo principal
    public static void main(String argv[])
    {
        try
        {
            Naming.rebind("rmi://localhost/ServidorAgenda", new servidor());
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

Fiz um outro projeto para somar dois numeros sem usar pacotes b[/b] e funcionou corretamente, mais só que nesse outro projeto tenho que package se não ele dá erro.

Então como que devo fazer para compilar corretamente o rmic com package ?!

Desde de já obrigado pela ajuda de todos.

4 Respostas

M

Creio que baste ir para a raiz dos fontes (sem entrar na pasta de nenhum package) e usar rmic mais o nome completo da classe:

rmic agendarmi.servidor
J
marcobiscaro2112:
Creio que baste ir para a raiz dos fontes (sem entrar na pasta de nenhum package) e usar rmic mais o nome completo da classe:
rmic agendarmi.servidor
Dá um erro, compilei da seguinte forma abaixo:
C:\Users\Jeovane Reges\agendarmi>javac *.java

C:\Users\Jeovane Reges\agendarmi>rmic agendarmi.servidor
error: Class agendarmi.servidor not found.
1 error
J

Desculpa eu tinha executado o rmic dentro da pasta do package, executei-lo fora da pasta e crio as classes skel e stub, entao para mim executar o servidor faço a mesma coisa, ou seja, java agendarmi.servidor

Mais quando vou chamar meu programa principal onde está os forms tento da mesma forma que é para mim executar o servidor java agendarmi. e entrando na pasta mais de ambas maneira aparece o erro abaixo.

Exception in thread "main" java.lang.NoClassDefFoundError: agenda/JRAgendaDeContatos
Caused by: java.lang.ClassNotFoundException: agenda.JRAgendaDeContatos
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: agenda.JRAgendaDeContatos.  Program will exit.

Que que erro quer dizer ?! Abaixo está minha classe que possui os forms

package agendarmi;

import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;
import java.rmi.*;

public class JRAgendaDeContatos extends javax.swing.JFrame {

    DefaultTableModel tmContato = new DefaultTableModel(null, new String[]{"ID", "Nome", "Telefone", "Email", "Apelido"});
    List<Contato> contato;
    ListSelectionModel lsmContato;

    public JRAgendaDeContatos() {
        initComponents();
        habilitaBotoes();
        desabilitaDados();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jLnome = new javax.swing.JLabel();
        jLtelefone = new javax.swing.JLabel();
        jLemail = new javax.swing.JLabel();
        jLapelido = new javax.swing.JLabel();
        jTnome = new javax.swing.JTextField();
        jTtelefone = new javax.swing.JTextField();
        jTemail = new javax.swing.JTextField();
        jTapelido = new javax.swing.JTextField();
        jTid = new javax.swing.JTextField();
        jLid = new javax.swing.JLabel();
        jBpesquisa = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jPanel2 = new javax.swing.JPanel();
        jBnovo = new javax.swing.JButton();
        jBalterar = new javax.swing.JButton();
        jBexcluir = new javax.swing.JButton();
        jBsalvar = new javax.swing.JButton();
        jBsair = new javax.swing.JButton();
        jBlimpar = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        setFont(new java.awt.Font("Verdana", 0, 10));

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Dados do Contato"));

        jLnome.setText("Nome:");

        jLtelefone.setText("Telefone:");

        jLemail.setText("E-mail:");

        jLapelido.setText("Apelido:");

        jTnome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTnomeActionPerformed(evt);
            }
        });

        jTtelefone.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTtelefoneActionPerformed(evt);
            }
        });

        jTid.setEditable(false);

        jLid.setText("ID:");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLnome)
                    .addComponent(jLtelefone)
                    .addComponent(jLemail)
                    .addComponent(jLapelido)
                    .addComponent(jLid))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTid, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addComponent(jTemail)
                        .addComponent(jTnome, javax.swing.GroupLayout.DEFAULT_SIZE, 346, Short.MAX_VALUE)
                        .addComponent(jTtelefone, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(jPanel1Layout.createSequentialGroup()
                            .addComponent(jTapelido, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(32, 32, 32))))
                .addContainerGap(69, Short.MAX_VALUE))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jTapelido, jTtelefone});

        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap(23, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLid)
                    .addComponent(jTid, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLnome)
                    .addComponent(jTnome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLtelefone)
                    .addComponent(jTtelefone, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLemail)
                    .addComponent(jTemail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLapelido)
                    .addComponent(jTapelido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jTapelido, jTemail, jTnome, jTtelefone});

        jBpesquisa.setText("Pesquisar");
        jBpesquisa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBpesquisaActionPerformed(evt);
            }
        });

        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jTable1.setModel(tmContato);
        jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                Teste(evt);
            }
        });
        jScrollPane1.setViewportView(jTable1);

        jBnovo.setText("Novo");
        jBnovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBnovoActionPerformed(evt);
            }
        });

        jBalterar.setText("Alterar");
        jBalterar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBalterarActionPerformed(evt);
            }
        });

        jBexcluir.setText("Excluir");
        jBexcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBexcluirActionPerformed(evt);
            }
        });

        jBsalvar.setText("Salvar");
        jBsalvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBsalvarActionPerformed(evt);
            }
        });

        jBsair.setText("Sair");
        jBsair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBsairActionPerformed(evt);
            }
        });

        jBlimpar.setText("Limpar");
        jBlimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBlimparActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(34, Short.MAX_VALUE)
                .addComponent(jBnovo, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jBalterar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jBexcluir)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jBsalvar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jBlimpar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jBsair)
                .addGap(33, 33, 33))
        );

        jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jBalterar, jBexcluir, jBlimpar, jBnovo, jBsair, jBsalvar});

        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
                    .addComponent(jBnovo)
                    .addComponent(jBalterar)
                    .addComponent(jBexcluir)
                    .addComponent(jBsalvar)
                    .addComponent(jBsair)
                    .addComponent(jBlimpar))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel2Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jBalterar, jBexcluir, jBlimpar, jBnovo, jBsair, jBsalvar});

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGap(12, 12, 12)
                        .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 396, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jBpesquisa))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 487, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jBpesquisa))
                .addGap(18, 18, 18)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
                .addGap(22, 22, 22))
        );

        pack();
    }// </editor-fold>                        

    private void jTnomeActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
    }                                      

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

    private void jBnovoActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // Habilita os campos para inserir um novo registro

        habilitaDados();
        limparDados();
        jBsalvar.setEnabled(true);
        jBlimpar.setEnabled(true);
        jBalterar.setEnabled(false);
        jBexcluir.setEnabled(false);
        jBnovo.setEnabled(false);
        jTnome.setText("");
        jTtelefone.setText("");
        jTemail.setText("");
        jTapelido.setText("");
    }                                      

    private void jBsalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         

        if (validaDados()) {
            try {
                salvar();
                desabilitaDados();
            } catch (SQLException ex) {
                Logger.getLogger(JRAgendaDeContatos.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }                                        

    private void jBpesquisaActionPerformed(java.awt.event.ActionEvent evt) {                                           
        try {
            //Realiza pesquisas de um determinado contato
            listar();
            desabilitaDados();
        } catch (SQLException ex) {
            Logger.getLogger(JRAgendaDeContatos.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                                          

    private void jBsairActionPerformed(java.awt.event.ActionEvent evt) {                                       
        //Exit - Sair do programa
        System.exit(0);
    }                                      

    private void jBalterarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        if (validaDados()) {
            //Alterar um registro:
            habilitaDados();
            jBsalvar.setEnabled(true);
            jBlimpar.setEnabled(true);
            jBalterar.setEnabled(false);
            /*
            salvar();                                         
             */
        }
    }

    private void jTtelefoneActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
    }                                          

    private void Teste(java.awt.event.MouseEvent evt) {                       
        // TODO add your handling code here:
        //String valor =  (String) tmContato.getValueAt( jTable1.getSelectedRow(),  jTable1.getSelectedColumn());

        jTid.setText(tmContato.getValueAt(jTable1.getSelectedRow(), 0).toString());
        jTnome.setText((String) tmContato.getValueAt(jTable1.getSelectedRow(), 1));
        jTtelefone.setText((String) tmContato.getValueAt(jTable1.getSelectedRow(), 2));
        jTemail.setText((String) tmContato.getValueAt(jTable1.getSelectedRow(), 3));
        jTapelido.setText((String) tmContato.getValueAt(jTable1.getSelectedRow(), 4));
        //JOptionPane.showMessageDialog(null, valor );

    }                      

    private void jBlimparActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        limparDados();
    }                                        

    private void jBexcluirActionPerformed(java.awt.event.ActionEvent evt) {                                          
        /*try {
            // TODO add your handling code here:
            excluirDados();
            limparDados();
            desabilitaDados();
        } catch (SQLException ex) {
            Logger.getLogger(JRAgendaDeContatos.class.getName()).log(Level.SEVERE, null, ex);
        }*/
    }                                         

    public void salvar() throws SQLException {
        Contato c1 = new Contato();
        jBnovo.setEnabled(true);
        jBlimpar.setEnabled(false);

        if (jTid.getText().equals("")) {
            try {
                c1.setNome(jTnome.getText());
                c1.setTelefone(jTtelefone.getText());
                c1.setEmail(jTemail.getText());
                c1.setApelido(jTapelido.getText());

                //Naming.lookup
                //referencia do objeto
                //chamar o método

                AgendaInterface ai = (AgendaInterface) Naming.lookup("rmi://localhost/ServidorAgenda");
                String msg = ai.cadastrar(c1);

                if (msg.equals("Ok")) {

                    JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!");
                } else {
                    JOptionPane.showMessageDialog(null, "Contato nao cadastrado ");
                }
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Erro no servidor, tente mais tarde. " + e);
            }
        } /*else {
            try {
                c1.setId(Long.valueOf(jTid.getText()));
                c1.setNome(jTnome.getText());
                c1.setTelefone(jTtelefone.getText());
                c1.setEmail(jTemail.getText());
                c1.setApelido(jTapelido.getText());

                Socket s = new Socket("localhost", 2123);
                SocketAddress end = s.getRemoteSocketAddress();

                //Configura as opcoes para o Servidor
                operacoes operacoes = new operacoes();
                operacoes.setTipo(2);
                operacoes.setContato(c1);

                //Enviar a operacao
                ObjectOutputStream output = new ObjectOutputStream(s.getOutputStream());
                output.writeObject(operacoes);

                //Receber a Mensagem
                ObjectInputStream input = new ObjectInputStream(s.getInputStream());
                String msg = (String) input.readObject();
                System.out.print(msg);
                JOptionPane.showMessageDialog(null, "Contato alterado com sucesso!");
                s.close();
            } catch (Exception e) {
            }
        }*/
    }

    /*public void excluirDados() throws SQLException {
        try {
            Contato c1 = new Contato();

            c1.setId(Long.valueOf(jTid.getText()));

            Socket s = new Socket("localhost", 2123);
            SocketAddress end = s.getRemoteSocketAddress();

            //Configura as opcoes para o Servidor
            operacoes operacoes = new operacoes();
            operacoes.setTipo(3);
            operacoes.setContato(c1);

            //Enviar a operacao
            ObjectOutputStream output = new ObjectOutputStream(s.getOutputStream());
            output.writeObject(operacoes);

            //Receber a Mensagem
            ObjectInputStream input = new ObjectInputStream(s.getInputStream());
            String msg = (String) input.readObject();
            System.out.print(msg);
            JOptionPane.showMessageDialog(null, "Contato removido com sucesso!");
            s.close();
        } catch (Exception e) {
        }
    }*/

    protected void listar() throws SQLException {
        ContatoDao dao = new ContatoDao();
        contato =
                dao.getLista("%" + jTextField1.getText() + "%");
        mostraResultados(contato);
    }

    private void mostraResultados(List<Contato> contato) {
        desabilitaDados();
        jBalterar.setEnabled(true);
        jBexcluir.setEnabled(true);
        jBsalvar.setEnabled(false);
        jBlimpar.setEnabled(false);

        if (contato.size() == 0) {
            JOptionPane.showMessageDialog(null, "Contato inexistente!");
        } else {
            String[] linha = new String[]{null, null, null, null, null};
            for (int i = 0; i <
                    contato.size(); i++) {
                tmContato.addRow(linha);
                tmContato.setValueAt(contato.get(i).getId(), i, 0);
                tmContato.setValueAt(contato.get(i).getNome(), i, 1);
                tmContato.setValueAt(contato.get(i).getTelefone(), i, 2);
                tmContato.setValueAt(contato.get(i).getEmail(), i, 3);
                tmContato.setValueAt(contato.get(i).getApelido(), i, 4);
            }

        }
    }

    //Comandos Extras
    public void desabilitaDados() {
        jTid.setEditable(false);
        jTnome.setEditable(false);
        jTtelefone.setEditable(false);
        jTemail.setEditable(false);
        jTapelido.setEditable(false);
    }

    public void habilitaDados() {
        jTnome.setEditable(true);
        jTtelefone.setEditable(true);
        jTemail.setEditable(true);
        jTapelido.setEditable(true);
    }

    public void limparDados() {
        jTid.setText("");
        jTnome.setText("");
        jTtelefone.setText("");
        jTemail.setText("");
        jTapelido.setText("");
    }

    public boolean validaDados() {
        if (!jTnome.getText().equals("") && !jTtelefone.getText().equals("")) {
            return true;
        } else {
            JOptionPane.showMessageDialog(null, "Os campos Nome e Telefone devem ser preenchidos!");
            return false;
        }

    }

    public void habilitaBotoes() {
        if (!jTnome.getText().equals("") && !jTtelefone.getText().equals("")) {
            jBalterar.setEnabled(true);
            jBexcluir.setEnabled(true);
            jBsalvar.setEnabled(true);
            jBlimpar.setEnabled(true);
        } else {
            jBalterar.setEnabled(false);
            jBexcluir.setEnabled(false);
            jBsalvar.setEnabled(false);
            jBlimpar.setEnabled(false);
        }

    }

    public void limpaTable() {
        for (int i = contato.size(); i >
                0; i--) {
            tmContato.removeRow(i);
        }
        tmContato.setValueAt("", 0, 0);
        tmContato.setValueAt("", 0, 1);
        tmContato.setValueAt("", 0, 2);
        tmContato.setValueAt("", 0, 3);
        tmContato.setValueAt("", 0, 4);
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new JRAgendaDeContatos().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jBalterar;
    private javax.swing.JButton jBexcluir;
    private javax.swing.JButton jBlimpar;
    private javax.swing.JButton jBnovo;
    private javax.swing.JButton jBpesquisa;
    private javax.swing.JButton jBsair;
    private javax.swing.JButton jBsalvar;
    private javax.swing.JLabel jLapelido;
    private javax.swing.JLabel jLemail;
    private javax.swing.JLabel jLid;
    private javax.swing.JLabel jLnome;
    private javax.swing.JLabel jLtelefone;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTapelido;
    private javax.swing.JTextField jTemail;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTid;
    private javax.swing.JTextField jTnome;
    private javax.swing.JTextField jTtelefone;
    // End of variables declaration                   
}

Mais uma vez obrigado pela ajuda de todos.

maior_abandonado

para deixar o servidor rodando, você precisa executar o comando rmiregistry no se prompt de comando.

da uma olhada em http://www.guj.com.br/article.show.logic?id=37

ai depois disso você executa o servidor.

depois dos dois, você pode da o Namming.lookup no cliente para obter o objeto remoto.

estes dias ai eu precisei fazer isso, na minha classe servidora do rmi eu crio uma thread chamando o rmiregistry via Runtime, outra para adicionar o objeto… ai depois disso eu chamo o servidor pelo cliente…

bom, da uma lida no tutorial daqui mesmo do guj que eu dexei o link, depois se você tiver duvida posta ae…

Criado 16 de janeiro de 2010
Ultima resposta 18 de jan. de 2010
Respostas 4
Participantes 3