# Antwort eines Soaprequests parsen mittels org.apache.soap



## jerchen (17. Jan 2007)

Hallo zusammen,

ich versuche jetzt seit zwei Tagen mit Java auf einen Soap-Server zuzugreifen, mittlerweile klappt das Anfrage senden auch schon, zwar sieht das gesendete XML verdammt komisch aus, aber es geht 

Als Antwort bekomme ich das hier zurück:
	
	
	
	





```
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
  xmlns:apachens="http://xml.apache.org/xml-soap" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"   
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <loginResponse xmlns="http://<IP>/NicToolServer/SOAP">
      <s-gensym2892>
        [...]
        <deleted xsi:type="xsd:int">0</deleted>
        <nt_user_session xsi:type="xsd:string">45ae8d15244ee71f</nt_user_session>
        <first_name xsi:type="xsd:string">Johannes</first_name>
      </s-gensym2892>
    </loginResponse>
  </soap:Body>
</soap:Envelope>
```

mich interessiert primär die nt_user_session.
ich bekomme aber diese Exception:*
SOAPException: faultCode=SOAP-ENV:Client; msg=
No Deserializer found to deserialize a &http://<IP>/NicToolServer/SOAP:s-gensym2892& 
using encoding style &http://schemas.xmlsoap.org/soap/encoding/&.; targetException=java.lang.IllegalArgumentException: 
No Deserializer found to deserialize a 'http://<IP>/NicToolServer/SOAP:s-gensym2892' 
using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.*

Mein Javacode sieht bis jetzt so aus:

```
Call call = new Call();
Response resp;
			
Vector<Parameter> params = new Vector<Parameter>();
Hashtable<String, String> p = new Hashtable<String, String>();
p.put("username", username);
p.put("password", password);
params.addElement( new Parameter("data", p.getClass(), p, null));	             
call.setTargetObjectURI( actionuri );
call.setMethodName( "login" );
call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );	             
call.setParams( params );

// ich denke hier fehlt noch was	             
                           
resp = call.invoke( new URL( endpoint ), actionuri );
```

Ich weiss nicht genau, wie ich das hinkriegen soll, meine Vermutung wäre mit Hilfe von SOAPMappingRegistry und ArraySerializer. Aber wie ich es auch mache, es gelingt mir nicht. 
Ich weiss nicht ob es von Bedeutung ist, aber der Tag </s-gensymXXXX> hat hinten eine 4 stellige Nummer, die nie gleich ist.

Kann mir da jemand einen Rat geben?


----------



## jerchen (20. Jan 2007)

Hat keiner ne idee?

Nehme auch gerne eine andere API...


----------



## jerchen (22. Jan 2007)

erledigt, habs mit Java 6 hinbekommen


----------

