Szybkie pytanie: w RMI aplikacja klienta wywołuje metodę na serwerze i serwer zwraca do klienta obiekt klasy DefaultTableModel (wykorzystywany do zapelnienia danymi tabeli Jtable w oknie JFrame aplikacji klienckiej)...Ten obiekt jest potem po stronie klienta wykorzystywany w taki sposob: Moja_tabela.setModel(nazwa_obiektu_klasy_Default_Table_Model_pobranej_z_serwera)...I po tym wszystkim tabela w aplikacji klienta ma byc wypelniana danymi - i jest...Ale gdy probuje kliknac na komorke, wyskakuje blad:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Connection.Pobranie_tabel$1.isCellEditable(Pobranie_tabel.java:61)
at javax.swing.JTable.isCellEditable(JTable.java:2687)
at javax.swing.JTable.editCellAt(JTable.java:3424)
at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(BasicTableUI.java:1084)
at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1014)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:262)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3983)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Moje pytanie brzmi: czy przy przesyłaniu obiektów danej klasy przez RMI po stronie klienta również muszą znajdować się klasy, dzięki którym serwer stworzył obiekt i wysyła je do klienta? Bo gdzieś słyszałem, ze tak naprawde nie sa przesylane cale obiekty tylko ich stan i na kliencie tez musza byc te same klasy co na serwerze aby mozna bylo odtworzyc te obiekty po stronie klienta? Dobrze mowie czy nie?