Autore Topic: [kSoap2] Creazione request con oggetti complessi  (Letto 3517 volte)

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
[kSoap2] Creazione request con oggetti complessi
« il: 21 Novembre 2011, 18:40:28 CET »
0
Salve ragazzi,
volevo sottoporre alla vostra attenzione questo problema, sperando che qualcuno di buon'anima possa aiutarmi.

Ho un oggetto Soap così caratterizzato:

Codice (XML): [Seleziona]
<tag="name">Mario</name>
<tag="cellulare">
        <tag="prefix">+39</prefix>
        <tag="numero"> 33333333333</numero>
</cellulare>
<tag="cognome">Rossi</cognome>

Consideriamo questo esempio come una parte della mia richiesta. Per compilare tale oggetto, se non fosse per il campo cellulare (che è complesso) farei così (lo faccio già per altre richieste e funziona perfettamente):

Codice (Java): [Seleziona]
SoapObject request = new SoapObject(service.getNamespace(), service.getMethodName());
request.addProperty("name",Mario);
request.addProperty("cognome",Rossi);

l'oggetto Service è stato da me creato per la memorizzazione dei parametri di connessione. Il codice così scritto funziona, e mi invia correttamente i dati, ma se devo settare i valori del campo complesso, non funziona, come faccio? Ciò che devo realizzare è una richiesta di update dati, che oltre a riceve in ingresso nome e cognome, riceve in ingresso il campo numero (complesso) che a sua volta è caratterizzato da prefix e numero. Come setto questi dati e li invio all'interno della richiesta?? Please help...

Grazie mille a tutti coloro che risponderanno
Saluti e Buona Serata

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #1 il: 22 Novembre 2011, 12:00:47 CET »
0
Ciao MariFio,
Ho avuto a che fare con KSOAP2 già e mi è capitato di inviare degli oggetti complessi nella request. Questo era un mio metodo, con classe utenteWs personalizzata
Codice (Java): [Seleziona]
private static final String NAMESPACE = "TUO NAMESPACE";

private static final String XMLSCHEMA = "http://www.w3.org/2001/XMLSchema";
private static final String METHOD_NAME_MAGIA = "nomeMetodoWebService";

private static final String SOAP_ACTION_MAGIA = NAMESPACE+"/"+METHOD_NAME_MAGIA;
public boolean Magia(UtenteWs utente) {

                boolean esito = false;

                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME_MAGIA);

                request.addProperty("utente", utente);

               

                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

                envelope.bodyOut = request;

                envelope.setOutputSoapObject(request);

                envelope.implicitTypes = true;

                Log.i("Envelope", "Settata");

                HttpTransportSE httpTransportSE = new HttpTransportSE(URL);

                try {

                        envelope.addMapping(NAMESPACE, "UtenteWs", new UtenteWs().getClass());

            httpTransportSE.debug = true;

                        httpTransportSE.call(SOAP_ACTION_MAGIA, envelope);

                } catch (IOException e) {e.printStackTrace();

                } catch (XmlPullParserException e) {e.printStackTrace(); }

               

                Log.i("requstDump","" + httpTransportSE.requestDump);

        Log.i("responseDump","" + httpTransportSE.responseDump);

                                 Log.i("call","call");

                                 

                SoapPrimitive response = null;

                try {

                        response = (SoapPrimitive) envelope.getResponse();

                } catch (SoapFault e) {e.printStackTrace();

                }

                if (response != null && response.toString().equals("true"))

                        esito = true;

                return esito;

        }
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #2 il: 22 Novembre 2011, 19:02:23 CET »
0
Ciao Alex,
in primis grazie mille per la tua risposta celere. Per quanto riguarda la metodologia, io avevo già visto una soluzione del genere, in particolare la tua di soluzione l'ho implementata in questa maniera qua:

Ho il campo numero, come da esempio in cima al topic. Creo un'oggetto numero così:

Codice (Java): [Seleziona]
public class Numero  extends Vector<String> implements KvmSerializable {

    private static final long serialVersionUID = -1166006770093411055L;

    @Override
    public Object getProperty(int arg0) {
            return this.get(arg0);
    }

    @Override
    public int getPropertyCount() {
            return this.size();
    }

    @Override
    public void getPropertyInfo(int arg0, Hashtable arg1, PropertyInfo arg2) {
            arg2.name = "numero";
            arg2.type = PropertyInfo.STRING_CLASS;
    }

    @Override
    public void setProperty(int arg0, Object arg1) {
            this.add(arg1.toString());
    }


}

Dopodichè ritorno alla mia Activity e procedo con la richiesta che effettuo in questa maniera qui:

Codice (Java): [Seleziona]
Numero numero=new Numero();
        numero.add(0,"392****211");
        numero.add(1,"39");

PropertyInfo numeroPropertyInfo = new PropertyInfo();
        numeroPropertyInfo.setName("numero");
        numeroPropertyInfo.setValue(numero);
        numeroPropertyInfo.setType(numero.getClass());

request2 = new SoapObject(service2.getNamespace(), service2.getMethodName());
                        request2.addProperty("name","Mario");
                        request2.addProperty(numeroPropertyInfo);
                        request2.addProperty("cognome", "Rossi");

Log.d("ProfiloEditActivity","Aggiunta campi completata");
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.bodyOut = request2;
            envelope.setOutputSoapObject(request2);
            envelope.implicitTypes = true;
       
                HttpTransportSE httpTransportSE = new HttpTransportSE(service2.getUrl());
                Log.d("ProfiloEdit","Oggetto Soap incapsulato");

try {
                                envelope.addMapping(service2.getNamespace(), "numero", new Numero().getClass());  
                                httpTransportSE.debug = true;
                                                httpTransportSE.call(service2.getSoapAction(), envelope);
                                        } catch (IOException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        } catch (XmlPullParserException e) {
                                                // TODO Auto-generated catch block
                                                e.printStackTrace();
                                        }//finePrimoTryCatch:

                        Log.d("ProfiloEditActivity","Oggetto Soap inviato");
                        Log.i("ProfiloEditActivity","requstDump : " + httpTransportSE.requestDump);
                        Log.i("ProfiloEditActivity","responseDump : " + httpTransportSE.responseDump);
                       
                       
                        //Ottengo la risposta:
                        result2=(SoapPrimitive)envelope.getResponse();
                        Log.d("ProfiloEdit","Risposta ricevuta");

Mostrato tutto quanto questo codice, oltre al crash dell'applicazione alla stampa successiva causata da questo Log.d
Log.d("ProfiloEdit","Result = "+result2.toString());

la ricezione della risposta mi genera questo errore, te lo riporto:
org.ksoap2.SoapFault Index=2; Size=2

Eppure pare non sbagli nulla mannaggia...Consigli? Che nervoso mi serve anche con urgenza :)
Ancora grazie Ale;


Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #3 il: 22 Novembre 2011, 21:25:26 CET »
0
Però mi sorge un dubbio: nel tuo caso la classe Numero è solo un Array di Stringhe. Potresti utilizzare in definitiva un String[ ]
Io nel mio caso avevo una classe UtenteWs con 6 attributi differenti. L'hai valutata già come idea?

Poi nella response non ho visto il try - catch che ti permette di capire anche meglio l'errore con il printStackTrace()
Codice (Java): [Seleziona]
SoapPrimitive response = null;
                try {
                        response = (SoapPrimitive) envelope.getResponse();
                } catch (SoapFault e) { e.printStackTrace();   }
« Ultima modifica: 22 Novembre 2011, 21:32:15 CET da alexAndroid »
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #4 il: 22 Novembre 2011, 23:06:18 CET »
0
Però mi sorge un dubbio: nel tuo caso la classe Numero è solo un Array di Stringhe. Potresti utilizzare in definitiva un String[ ]
Io nel mio caso avevo una classe UtenteWs con 6 attributi differenti. L'hai valutata già come idea?

Poi nella response non ho visto il try - catch che ti permette di capire anche meglio l'errore con il printStackTrace()
Codice (Java): [Seleziona]
SoapPrimitive response = null;
                try {
                        response = (SoapPrimitive) envelope.getResponse();
                } catch (SoapFault e) { e.printStackTrace();   }

Corretto e ti riporto di seguito l'errore come print della schermata del pc, ti riporto i punti essenziali :)
LINK AD IMMAGINE

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #5 il: 23 Novembre 2011, 11:34:03 CET »
0
Era meglio che utilizzavi i tag appropriati per incollare il LogCat, almeno si potevano scorrere verso destra.
Non capisco così quale può essere la riga e l'istruzione che potrebbe generare l'errore
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #6 il: 23 Novembre 2011, 13:09:23 CET »
0
Ok perfetto funzionaa!!! Andata la prima :)

Volevo chiederti un'altra cosa, sempre se non ti stò disturbando a mille :)
Ti è mai capitata una richiesta così composta?


Codice (XML): [Seleziona]
<tag1>
      <tag2>
             <nome>Mario</nome>
             <cognome>Rossi</nome>
      <tag2>
<tag1>

La mia domanda è: come accedo al terzo ramo dell'albero xml, ovvero ai tag nome e cognome ed incapsulo la richiesta?
Stò uscendo pazzo!!!

Ancora grazie ale, sei gentilissimo :)
Saluti    :-P

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #7 il: 23 Novembre 2011, 13:30:43 CET »
0
Alex ma la tua classe UtenteSW com'è fatta? Forse sbaglio lì... :-(

Offline alexAndroid

  • Utente normale
  • ***
  • Post: 185
  • Respect: +27
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Giò
  • Sistema operativo:
    Ubuntu 11.10; Windows XP
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #8 il: 23 Novembre 2011, 22:21:24 CET »
+1
Non riesco a capire come fai ad avere 3 livelli di XML, io al massimo avevo 2 livelli se non ricordo male, eppure passavo delle liste di oggetti complessi.
Ti posto la mia classe UtenteWs
Codice (Java): [Seleziona]
public class UtenteWs implements KvmSerializable, Serializable {
        private static final long serialVersionUID = ;
        private String username;
        private String password;
        private String nome;
        private String cognome;
        private String telefono;
        private String email;
//Il costruttore lo salto di UtenteWs(.....), metodi get e set li salto
public Object getProperty(int which) {  
        switch(which) {
                case 0: return username;
                case 1: return password;
                case 2: return nome;
                case 3: return cognome;
                case 4: return telefono;
                case 5: return email;        
        }
        return null;
    }

        /**
         * @return Il numero di campi di cui è composto il Tipo di Dati Utente
         */

    public int getPropertyCount() {
        return 6;
    }
    /**
     * @param index Indica di quale campo si tratta
     * @param arg1 Non lo so
     * @param info Indica quale proprietà si vuole vedere
     */

    @Override
    public void getPropertyInfo(int index, @SuppressWarnings("rawtypes") Hashtable arg1, PropertyInfo info) {
        switch(index) {
                case 0:
                        info.type = PropertyInfo.STRING_CLASS;
                        info.name = "username";
                        break;
                case 1:
                        info.type = PropertyInfo.STRING_CLASS;
                        info.name = "password";
                        break;
                case 2:
                        info.type = PropertyInfo.STRING_CLASS;
                        info.name = "nome";
                        break;
                case 3:
                        info.type = PropertyInfo.STRING_CLASS;
                        info.name = "cognome";
                        break;
          case 4:
                  info.type = PropertyInfo.STRING_CLASS;
                  info.name = "telefono";
                  break;
          case 5:
                  info.type = PropertyInfo.STRING_CLASS;
                  info.name = "email";
            break;
        default:break;
        }
    }

    /** Metodo per settare le proprietà dei SoapObject
     * @param index Indica quale proprietà settare
     * @param value Oggetto che racchiude le proprietà da settare.
     */

    public void setProperty(int index, Object value) {
        switch(index) {
                case 0:
                        username = value.toString();
                        break;
                case 1:
                        password = value.toString();
                        break;
                case 2:
                        nome = value.toString();
                        break;
                case 3:
                        cognome = value.toString();
                        break;
                case 4:
                        telefono = value.toString();
                        break;
                case 5:
                        email = value.toString();
                        break;
        default:
            break;
        }
    }
}
« Ultima modifica: 23 Novembre 2011, 22:23:28 CET da alexAndroid »
Sei stato aiutato oppure il tuo problema è stato risolto? Allora premi il tasto THANKS E' un modo utile e carino per ringraziare chi ti è stato di aiuto.

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #9 il: 23 Novembre 2011, 22:34:46 CET »
0
Grazie mille Alex,
adesso non sono a casa, appena ho modo faccio le dovute prove e ti faccio sapere.
Comunque non mi discosto molto dalla tua implementazione :)

Ancora grazie ti terrò aggiornato sugli eventuali sviluppi  ;-)
Buona serata

Offline MariFio

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google ideos
  • Sistema operativo:
    Mac OS X 10.5
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #10 il: 26 Novembre 2011, 14:34:02 CET »
0
Purtroppo il livello di complessità introdotto con gli esempi che abbiamo apportato non è sufficiente. Funziona per un primo livello di complessità. L'idea è questa:

serializzare una cosa del genere:

Codice (XML): [Seleziona]
<citta>Napoli</citta>
<cittadini>
           <persona>
                          <nome>a</tag3>
                          <cognome>a</tag4>
           </persona>
           <persona>
                          <nome>b</tag3>
                          <cognome>b</tag4>
           </persona>
           <persona>
                           <nome>c</tag3>
                          <cognome>c</tag4>
           </persona>
</cittadini>
<voto> 7</voto>

In pratica il tag cittadini non è altro se non un vettore di oggetti complessi (che rispecchia la mia class KvmSerialization Cittadini) che a sua volta è composta da oggetti complessi (Persone). Ho effettuato non poche ricerche sul grandioso google, ma tantissime altre persone non sono riuscite a risolvere la situazione.

Il problema è il seguente, in definitiva, come serializzo con Ksoap2 questa situazione?  :'(
Bhè chiunque postasse la soluzione ne sarò riconoscente a vita :)
Grazieeee

Offline davegrohl89

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X Lion
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #11 il: 16 Dicembre 2011, 18:08:38 CET »
0
Ciao a tutti!!
E' la prima volta che scrivo sul forum, ho letto questo post che mi è stato molto utile per capire come "usare" questa libreria ksoap. Ho provato ad applicarlo al mio caso e volevo chiedervi se è normale che nel Logcat quando richiamo
Codice (Java): [Seleziona]
Log.i("ProfiloEditActivity","responseDump : " + httpTransportSE.responseDump); mi venga visualizzato tutto il mio file wsdl. E' corretto?? Sapete dirmi per caso dove sbaglio perchè chiaramente quando vado a fare la response mi genera un' eccezione e non mi viene creata l'activity o è meglio se posto il codice??

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #12 il: 17 Dicembre 2011, 16:19:40 CET »
0
Che io sappia ti dovrebbe mostrare tutto il file XML che corrisponde alla response, quindi i dati strutturati in opportuni tag con all'interno il loro valore. Si tratta sempre di un'envelope e ci dovrebbe pure essere un tag che wrappa i risultati con il nome del metodo server side che hai invocato.

Invece la requestDump ti stampa tutto l'XML della request che ti sei creato tramite le ksoap2 nella tua app.

Posta almeno il codice dell'eccezzione e dove avviene altrimenti è più difficile che qualcuno ti aiuti.
« Ultima modifica: 17 Dicembre 2011, 16:21:42 CET da helldron »

Offline davegrohl89

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Mac OS X Lion
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #13 il: 17 Dicembre 2011, 17:08:14 CET »
0
Allora sono ancora alle prime armi e sto implementando la versione Android di una web application:

Il mio file LoginService.wsdl è il seguente (taglio un po' di pezzi):

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:tns="http://localhost/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="LoginService"
        targetNamespace="http://localhost/">
        <wsdl:types>
                <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                        <xsd:import namespace="http://localhost/"
                                schemaLocation="http://localhost/.../services/wsdl/Types.xsd" />
                </xsd:schema>
        </wsdl:types>
        <wsdl:message name="loginWithUsernameRequest">
                <wsdl:part name="loginWithUsernameRequest" type="tns:LoginUserType" />
        </wsdl:message>
        <wsdl:message name="loginWithUsernameResponse" >
                <wsdl:part name="loginWithUsernameResponse" type="tns:RightsType"></wsdl:part></wsdl:message>
        <wsdl:message name="loginWithUsernameFault" />
     ...
        <wsdl:portType name="LoginService">
                <wsdl:operation name="loginWithUsername">
                        <wsdl:input message="tns:loginWithUsernameRequest" />
                        <wsdl:output message="tns:loginWithUsernameResponse" />
                        <wsdl:fault name="fault" message="tns:loginWithUsernameFault" />
                </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="LoginServiceSOAP" type="tns:LoginService">
                <soap:binding style="rpc"
                        transport="http://schemas.xmlsoap.org/soap/http" />
                <wsdl:operation name="loginWithUsername">
                        <soap:operation soapAction="http://localhost/loginWithUsername" />
                        <wsdl:input>
                                <soap:body use="literal" namespace="http://localhost/" />
                        </wsdl:input>
                        <wsdl:output>
                                <soap:body use="literal" namespace="http://localhost/" />
                        </wsdl:output>
                        <wsdl:fault name="fault">
                                <soap:fault use="literal" name="fault" />
                        </wsdl:fault>
                </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="LoginService">
                <wsdl:port binding="tns:LoginServiceSOAP" name="LoginServiceSOAP">
                        <soap:address
                                location="http://localhost/.../services/LoginService.php" />
                </wsdl:port>
        </wsdl:service>
</wsdl:definitions>
Il file Types.xsd dove (da quello che ho capito) vengono definiti i tipi:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://localhost/" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://localhost/">
    ...
    <xsd:complexType name="LoginUserType">
        <xsd:sequence>
                <xsd:element name="username" type="xsd:string"></xsd:element>
                <xsd:element name="password" type="xsd:string"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="RightsType">
        <xsd:sequence>
                <xsd:element name="admin" type="xsd:string"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    ...
Ed il mio codice java:
Codice (Java): [Seleziona]
        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
         
          request.addProperty("username", "test");
          request.addProperty("password","test");
          Log.d("ProfiloEditActivity", "Aggiunta campi completata");
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
          envelope.bodyOut = request;
          envelope.setOutputSoapObject(request);
          envelope.implicitTypes = true;
          HttpTransportSE httpTransportSE = new HttpTransportSE(URL);
          Log.d("ProfiloEdit","Oggetto Soap incapsulato");
          try {
             
              httpTransportSE.debug = true;
              httpTransportSE.call(SOAP_ACTION, envelope);
          } catch (IOException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
          } catch (XmlPullParserException e) {
                  // TODO Auto-generated catch block
              e.printStackTrace();
          }//finePrimoTryCatch:

          Log.d("ProfiloEditActivity","Oggetto Soap inviato");
          Log.i("ProfiloEditActivity","requestDump : " + httpTransportSE.requestDump);
          Log.i("ProfiloEditActivity","responseDump : " + httpTransportSE.responseDump);
          SoapPrimitive response = null;
         
                try {
                          response = (SoapPrimitive) envelope.getResponse();
                  Log.d("ProfiloEdit","Risposta ricevuta");
          } catch (SoapFault e) { e.printStackTrace();   }


La mia requestDump, che credo sia corretta, stampata nel LogCat:
Codice (XML): [Seleziona]
<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:d="http://www.w3.org/2001/XMLSchema"
                        xmlns:c="http://schemas.xmlsoap.org/soap/encoding/"
                        xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">           
                <v:Header />
                <v:Body>
                        <n0:loginWithUsername
                                id="o0" c:root="1" xmlns:n0="http://localhost/">
                                <username>test</username>
                                <password>test</password>
                        </n0:loginWithUsername>
                </v:Body>
</v:Envelope>

Mentre la responseDump è esattamente il file wsdl.

Ricevo questa eccezione:
Codice (Java): [Seleziona]
java.lang.RuntimeException: Unable to start activity ComponentInfo{org.testWS/org.testWS.TestWebServiceActivity}: java.lang.NullPointerException.

Dove sbaglio??

Offline helldron

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:[kSoap2] Creazione request con oggetti complessi
« Risposta #14 il: 21 Dicembre 2011, 10:15:50 CET »
0
La request la fa quindi fino al server arriva e riceve anche la response.

Dal logcat si capisce a che punto del codice viene generata l'eccezzione, quindi il metodo o la linea??