AXIS2 null Array macht Probleme auf Client

navino

Mitglied
Hallo

habe eine Object welches ein Array mit anderen Objekten enthält.
Wenn das Array gefüllt ist, habe ich keine Problem auf dem Client. Wenn aber das Array null ist, da keine Objekte vorhanden sind, bekomme ich folgenden Fehler:
java.lang.RuntimeException: java.lang.RuntimeException: Unexpected subelement createdAt

Wie kann ich dieses Problem beheben?

Gruß
navino
 
Naja, du kannst den Fehler z.B. mit einer if-Abfrage abfangen und das Array dann z.B. mit einer null/oder was anderem füllen.
 
Ich hab das Problem auf dem Client.

Das Array ist nicht null, es hat eine Länge von 1, owohl ich auf dem Server return null zurückgebe.

Hier meine Service-Methode:

public CompDTO[] findCompByProjectIdentity(long id){
return null;
}

Hier der Teil des Clients:

FindCompByProjectIdentity findComps = new FindCompByProjectIdentity();
findComps.setId(1);
CompDTO[] comps= stubProject.findCompByProjectIdentity(findComps).get_return();
System.out.println("comps " + comps.length);


Die Ausgabe :

comps 1

Wie soll man nun auf der Clientseite abfragen, ob die Liste null ist?

Das kann doch so nicht reichtig sein?

Gruß
navino
 
Hi!

Also das mit der 1 ist ja richtig.
Du willst aber den Inhalt der Rückgabe auslesen. Das funktioniert natürlich mit "length" nicht.
Da muss in der Regel der Name des Feldes hin, in dem der Wert stehen soll.

Das kann man in der WSDL-nachschauen, oder aber du schaust in der Klasse.

Hilft dir das weiter?
 
Hallo,

ich bin kein Java-Anfänger.
Bei dieser Anwendung schreibe ich den Server und den Client.
Ich weiss also welche Objekte, wenn denn vorhanden in dem Array sein müssten.

Das Problem ist: Wenn array.length 1 sagt, dann muss da was drin sein.
Wenn aber bei array[0] null zurückkommt, muss ich genau dieses Abfragen
ob das 1. Element in dem Array null ist:
zb. if(array[0] = null){ nix drin}

Das ist meiner Meinung nach nicht richtig, was Axis dort macht.
Es müsste so sein if (array == null){ nix drin}

Entweder bin ich doch Anfänger oder Axis2 verstehe ich nicht.

Wenn eine Service-Methode ein Object oder null zurückkommt, kommt auch beim Client das Object oder null zurück.... nur nicht bei Arrays

Gruß Navino
 
Ah okay, das meinst du.

Du könntest doch probieren, mit einem Netzwerkmitschnitt (z.B. mit Wireshark)mal zu sehen, was denn generell vom Server zurückkommt und wie der Inhalt aussieht.

Ich habe zwar nur 2-3 Clients mit Axis entwickelt, aber ich hatte das, wenn ich micht recht erinnere auch so, dass ich dann vom Server ein Array mit z.B. einer Länge zurückbekam, aber in dem entsprechenden Feld dann "null" stand.
 
Hallo,

ich denke da werde mit leben können....
Ist zwar unschön.... aber es geht ja!

Gruß
navino und Danke für die Hilfe
 

Neue Beiträge

Zurück