Hallöchen,
Ich habe ein Problem beim deserialisieren über das Netzwerk.
ich habe eine Client - Server Anwendung geschrieben die über HTTPS kommuniziert.
Als Client verwende ich den HttpClient von Jakarta Commons.
Das Handshake funktioniert und ich habe eine Funktion implementiert die String[ ] in
beide Richtungen via PostMethod übertragen kann.
Nun möchte ich aber vom Server eine Struktur übertragen.
genauer :
ein bestimmtes Verzeichnis vom Server wird ausgelesen. Jedes File wird in
ein MetaFile geschrieben und diese MetaFiles werden in eine Liste geschrieben.
Diese Struktur(Liste und Ihre objekte) sollen nun durch serialisierung übertragen
werden. Die Klassen implementieren serialiszable.
Client und Server haben beide den gleichen java compiler.
Den kompletten Server code habe ich zum testen erstmal in ein jar verpackt
und der client benutzt dieses um auf die serializable funktionen zuzugreifen.
Problem:
Sobald ich auf die Struktur zugreife erhalte ich eine null pointer exception.
einpacken (server code)
auspacken (client code)
zugriff auf das object (client) :
Durch den Zugriff des Iterators auf das erste element ensteht folgender Fehler :
Der Fehler tritt auch auf wenn ich direkt auf das erste element zugreife
MappedFile file = (MappedFile)mappedServerList.getList().get(0);
Der debugger öffnet mir in der Liste keine Elemente. Leider kenne ich mit
Serialisierung nicht aus.
Bin dankbar für jede Hilfe
Bastian
Ich habe ein Problem beim deserialisieren über das Netzwerk.
ich habe eine Client - Server Anwendung geschrieben die über HTTPS kommuniziert.
Als Client verwende ich den HttpClient von Jakarta Commons.
Das Handshake funktioniert und ich habe eine Funktion implementiert die String[ ] in
beide Richtungen via PostMethod übertragen kann.
Nun möchte ich aber vom Server eine Struktur übertragen.
genauer :
ein bestimmtes Verzeichnis vom Server wird ausgelesen. Jedes File wird in
ein MetaFile geschrieben und diese MetaFiles werden in eine Liste geschrieben.
Diese Struktur(Liste und Ihre objekte) sollen nun durch serialisierung übertragen
werden. Die Klassen implementieren serialiszable.
Client und Server haben beide den gleichen java compiler.
Den kompletten Server code habe ich zum testen erstmal in ein jar verpackt
und der client benutzt dieses um auf die serializable funktionen zuzugreifen.
Problem:
Sobald ich auf die Struktur zugreife erhalte ich eine null pointer exception.
einpacken (server code)
Code:
... // bekommt das Object mappedFileList
m_response.setContentType("application/octet-stream");
ObjectOutputStream objOut;
try {
objOut = new ObjectOutputStream(
new BufferedOutputStream(
m_response.getOutputStream()));
objOut.writeObject(mappedFileList);
objOut.close();
auspacken (client code)
Code:
ObjectInputStream objIn = null;
MappedFileList serverWorkspace = null;
try {
objIn = new ObjectInputStream(
new BufferedInputStream(
post.getResponseBodyAsStream()));
serverWorkspace = (MappedFileList) objIn.readObject();
zugriff auf das object (client) :
Code:
// liefert die
MappedFileList mappedServerList = resData.getServerWorkspace(postMethod);
Iterator it = mappedServerList.getList().iterator();
Durch den Zugriff des Iterators auf das erste element ensteht folgender Fehler :
Code:
Exception occurred during event dispatching:
java.lang.NullPointerException
at de.controller.ConnectController.handleRequest(ConnectController.java:155)
at de.controller.MainController.handleEvent(MainController.java:132)
at de.controller.MainController.handleEvent(MainController.java:128)
Der Fehler tritt auch auf wenn ich direkt auf das erste element zugreife
MappedFile file = (MappedFile)mappedServerList.getList().get(0);
Der debugger öffnet mir in der Liste keine Elemente. Leider kenne ich mit
Serialisierung nicht aus.
Bin dankbar für jede Hilfe
Bastian