sending complex types with ksoap2 und receive them with axis2 webservice ?

  • Antworten:2
Martin F
  • Forum-Beiträge: 4

15.08.2011, 20:49:29 via Website

Hallo,

Ich möchte von meiner App eine Liste von Objekten (complex Types) zB in einer ArrayList an meinen Axis2 Webservice senden und diese dort weiter verarbeiten.Wie muss ich solche complex Types verarbeiten (schachteln), damit man sie übertragen kann ? Ich benutze auf Android Seite ksoap2. Desweiteren hab ich auch noch keine genauere Vorstellung davon wie ich diesen geschachtelten complex Types auf Webserviceseite unter Axis 2 wieder aufdrösel. Hoffe jmd kennt sich da aus =)

Bei primitiven Datentypen hab ich es schon hinbekommen. D.h wenn man nur einzelne Strings usw überträgt (siehe unten Bsp). Auch kann ich schon von meinem Axis2 Webservice Listen mit Objekten als ArrayList senden und mittels ksoap bei der App empfangen, auch das auflösen des geschachtelten SoapObjekts und anschließende aufbauen der objekte klappt. Man sollte meinen dass der Rückweg der selbe ist, aber irgendwie hängts grad ...
Grüße

1public void updateUser(){
2 /** Initialize service*/
3 Service s1 = new Service();
4 SoapObject r1 = s1.getService("Userservice", "updateUser");
5 r1.addProperty("nickname", this.getNickname());
6 r1.addProperty("lastname", this.getLastname());
7 r1.addProperty("firstname", this.getFirstname());
8 r1.addProperty("email", this.getEmail());
9 r1.addProperty("status", this.getStatus());
10 r1.addProperty("statusmessage", this.getStatusmessage());
11 s1.setSimpleUpdate();
12 }

1public void setSimpleUpdate(){
2 SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
3 soapEnvelope.setOutputSoapObject(request);
4
5 HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
6 try {
7 androidHttpTransport.call(SOAP_ACTION, soapEnvelope);
8
9 }catch(Exception e){
10 e.printStackTrace();
11 }
12 }

— geändert am 16.08.2011, 14:38:39

Antworten
Flo W
  • Forum-Beiträge: 1

29.05.2012, 17:57:10 via Website

Ich möchte diesen Thread nochmal aufleben lassen.

Ich kann Int-Array Strings int etc alles übertragen jededoch keine komplexeren Objekte (Sprich eigene klassen die Strings und int enthalten)

Ich hab auch schon das programmiert, jedoch klappt es nicht. Kennt sich jemand aus, sodass es lohnen würde meine Code zu posten.

Antworten
Manuel Wenner
  • Forum-Beiträge: 40

01.03.2013, 10:52:42 via Website

Das gleiche Problem habe ich auch, wenn ich ein eigenes Objekt mit übergeben möchte.
Bin dann auf den Punkt "Marshalling" gestoßen und hab ein Beispiel mit Date und double gefunden, aber leider weiß ich nicht, wie ich das auf mein Objekt anwenden soll. Vielleicht sagt dir das mehr?
http://code.google.com/p/ksoap2-android/wiki/CodingTipsAndTricks#Marshalling_Arrays

Hast du mittlerweile schon eine Lösung gefunden?

Antworten