Liste von komplexen Datentypen aus .NET service

Y

Ylirebus

Neues Mitglied
0
Hallo zusammen,

ich probiere gerade eine Liste von komplexen Datentypen von einem .NET Webservice zu empfangen.

Wenn ich die Funktion im Browser aufrufe bekomme ich folgendes Ergebnis:

<ArrayOfSimpleAuftrag>
<SimpleAuftrag>
<Id>5</Id>
<Nummer>Auftrg001</Nummer>
</SimpleAuftrag>
<SimpleAuftrag>
<Id>6</Id>
<Nummer>Auftrg002</Nummer>
</SimpleAuftrag>
</ArrayOfSimpleAuftrag>

diese probiere ich nun auszulesen:

Code:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
             SoapEnvelope.VER11);
     envelope.dotNet = true;
     envelope.setOutputSoapObject(request);
     SoapObject result = null;

     try {
             AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
             httpTransport.debug=true;
            httpTransport.call(SOAP_ACTION, envelope);
            List<SoapObject> listOfSoapObject = new ArrayList<SoapObject>();
            //Vector<SoapObject> vectorOfSoapObject = new Vector<SoapObject>();
            
            try {
                listOfSoapObject =  (ArrayList<SoapObject>) envelope.getResponse(); // <-- Exception
            }
            catch(Exception e)
            {
                  Log.e("error", "", e);
            }
           
            for (SoapObject soapObject : listOfSoapObject) {
                SimpleAuftrag auftrag = convertToAuftrag(soapObject);
                listOfAuftraegeTemp.add(auftrag);
            }
Der Fehler passiert an der Stelle:
listOfSoapObject = (ArrayList<SoapObject>) envelope.getResponse(); // <-- Exception
Message:
java.lang.ClassCastException: org.ksoap2.serialization.SoapObject


Ich habe es schon mit Vector<SoapObject> probiert auch ohne Erfolg.

Kann mir jemand sagen, was ich hier falsch mache ?

Danke im Voraus!

Ylirebus
 
So eine Frage ist in der Entwicklung besser aufgehoben, deshalb habe ich sie dorthin verschoben.
 
Hat jemand sonst ein Beispiel für das Empfangen von komplexen Datentypen mit einem Android ?:unsure:

Wenn z.B. ein Webservice folgendes Ergebnis liefert:
<ArrayOfSimpleAuftrag>
<SimpleAuftrag>
<Id>5</Id>
<Nummer>Auftrg001</Nummer>
</SimpleAuftrag>
<SimpleAuftrag>
<Id>6</Id>
<Nummer>Auftrg002</Nummer>
</SimpleAuftrag>
</ArrayOfSimpleAuftrag>

wie bekomme ich das auf meinem Android in eine Klasse

public class SimpleAuftrag
{
public int Id;
public string Nummer;
}

Danke im Voraus

Ylirebus
 
Zuletzt bearbeitet:
das ist doch simples xml - warum nimmst nicht einfach einen xml parser ?
 
Das hätte ich als nächstes einfach gemacht, aber ich dachte mir,ich frage mal nach ob es nicht einfacher geht.

Danke

Ylirebus
 
Debug doch einfach mal da rein und guck was für ein Objekt bei getResponse() rauskommt...
 
Hallo zusammen,

Also ich muss erstmal gestehen, das ich bis vor einer Woch eher .NET Anwendungen geschrieben habe aber vor einiger Zeit schon mal die ein oder andere kleine Java-Anwendung geschrieben habe.

ich habe mal das "getResponse()" nur einem "SoapObject" zugewiese.

Wenn ich mir den result anschaue, habe ich folgendes:

anyType{SimpleAuftrag=anyType{Id=5; Nummer=Auftrg001; Referenz=Ref001; ProjektnummerFakturierung=prj001; Uebertragen=false; SachbearbeiterKunde=1; SachbearbeiterSelbst=1; }; SimpleAuftrag=anyType{Id=6; Nummer=Auftrg002; Referenz=Ref002; ProjektnummerFakturierung=prj002; Uebertragen=false; SachbearbeiterKunde=3; SachbearbeiterSelbst=1; }; }

Aus dem Bauch raus würde ich sagen das müsste mann doch in eine List<SimpleAuftrag> konvertieren können.

Code:
List<SimpleAuftrag> auftraege = (List<SimpleAuftrag>)result;
aber das funktioniert leider nicht.

Fehler:
java.lang.ClassCastException: org.ksoap2.serialization.SoapObject

Muss ich die Klasse evtl. anders gestalten?

public class SimpleAuftrag {
public String Id;
public String Nummer;
public String Reference;
public String SachbearbeiterKunde;
public String SachbearbeiterSelbst;
public String ProjektnummerFakturierung;
public String Uebertragen;
}

Vielen Dank für Eure Hilfe

P.S. Ich habe oben die Klasse ein wenig kleiner gestaltet, das Prinzip ist ja gleich. Die Klasse hat eigendlich mehr Parameter wie hier.

Ylirebus
 
Zuletzt bearbeitet:

Ähnliche Themen

R
  • Robby1950
2
Antworten
23
Aufrufe
1.004
Robby1950
R
Jansenwilson
Antworten
1
Aufrufe
687
Mazuch
Mazuch
S
Antworten
17
Aufrufe
550
jogimuc
J
Zurück
Oben Unten