0

//I have method pulic list that return list, i want to display data into jtable, how to do it?

methods that retrieve data from the database

public List<mahasiswa> SelectMahasiswa() throws RemoteException {
         List <mahasiswa>listMahasiswa = new ArrayList<mahasiswa>();
        try {
            PreparedStatement ps = con.prepareStatement("SELECT nim, nama, jurusan FROM mahasiswa");
            ResultSet rs = ps.executeQuery();
            while (rs.next()) {
                mahasiswa mhs = new mahasiswa();
                mhs.setNim(rs.getString(1));
                mhs.setNama(rs.getString(2));
                mhs.setJurusan(rs.getString(3));
              listMahasiswa.add(mhs);
              rs.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } 
        return listMahasiswa;
            }

display data to JTable

public   void getAll(){
        try {
            Registry regis = LocateRegistry.getRegistry("localhost", koneksi.Port_id );
            remot rem = (remot) regis.lookup(koneksi.id);
            DefaultTableModel model=new DefaultTableModel();
            for(mahasiswa mhs:rem.SelectMahasiswa()){
            String kolom1=mhs.getNim();
            String kolom2=mhs.getNama();
            String kolom3=mhs.getJurusan();
            String kolom[]={kolom1,kolom2,kolom3};
            model.addRow(kolom);
            }
          jTable1.setModel(model);

        } catch (Exception ex) {
            ex.printStackTrace();
        }  
    }

Error message

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: remot.mahasiswa at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:193) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy0.SelectMahasiswa(Unknown Source) at klaiyen.CRUD2.getAll(CRUD2.java:218) at klaiyen.CRUD2.(CRUD2.java:30) at klaiyen.CRUD2$4.run(CRUD2.java:263)

  • 1
    Your class `remot.mahasiswa` doesn't seem to implement `java.io.Serializable` which is a requirement when you want to send your objects via RMI. – Brian Jun 28 '15 at 19:51
  • In java data cannot be transferred over a network unless they are [Serializable](http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html) – ares Jun 28 '15 at 20:36

1 Answers1

0

Your class mahasiswa should look like this:

 class mahasiswa implements Serializable {
    ...
    }
Kachna
  • 2,701
  • 2
  • 17
  • 30