Gewusst wie: übergeben Parameter durch eine SOAP-Nachricht verbrauchen eine parametrisierte Methode des webservice
Ich geschrieben habe, einen java-SOAP-WebService. und einem Verbraucher als gut. wenn ich eine SOAP-Nachricht senden, um eine Methode ohne Parameter auf. es funktioniert Prima, die richtige Antwort eingegangen ist.
Aber, ich bin nicht in der Lage zu konsumieren, eine Methode, die Parameter haben. Meine SOAP-Nachricht gespeichert ist in folgende Zeichenfolge in folgendem Muster.
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
"<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">"+
"<S:Header/>"+
"<S:Body>"+
"<ns2:addPerson xmlns:ns2=\"http://service.cass.com/\">"+
"<fName xsi:type=\"xsd:string\">vbn</fName>"+
"<lName xsi:type=\"xsd:string\">yyyy</lName>"+
"<gender xsi:type=\"xsd:string\">879</gender>"+
"<age xsi:type=\"xsd:int\">90</age>"+
"</ns2:addPerson>"+
"</S:Body>"+
"</S:Envelope>";
Prototyp-Methode ist:
public boolean addPerson(String fName, String lName, String Geschlecht; int Alter);
und ich erhalte folgende exception.
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 500 for URL: http://localhost:8080/ServerSide/ws/personService
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
at com.cass.testRequest.makeSOAPRequest(testRequest.java:71)
at com.cass.testRequest.main(testRequest.java:37)
Bitte beachten Sie, dass, wenn ich ein SOAPMessage ohne Parameter für eine Methode mit 0 Parametern. Hat alles Prima funktioniert und ich bekomme eine richtige Antwort. Meiner Meinung nach, Etwas falsch mit der Art und Weise, die ich bin übergeben von Parametern in SOAPMessage. Bitte vorschlagen, wie das zu tun.
Grüße,
Aqif
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie nicht definiert
xsi
oderxsd
namespaces. Versuchen Sie etwas wie das folgende (aber siehe Kommentare unten zu korrigieren veriosn des namespaces):(Diese wäre nicht erforderlich, für die Methode ohne Parameter, die ist, warum es funktionierte in diesem Fall).
Bearbeitet: Die folgenden überprüft die korrekte XML - http://validator.w3.org/check
aber das bedeutet nicht, es entspricht dem SOAP-schema...das wäre das nächste, was zu prüfen...
Kann es Probleme wenn der client die Verwendung von SOAP 1.1 und server mittels SOAP 1.2 zum Beispiel finde ich die namespaces sind Verschieden. Ähnlich, nicht zu verwechseln namespaces von den beiden Versionen - es muss alles einheitlich sein.
Und ich denke, die up-to-date-Namensräume für xsd und xsi sind jetzt 2001 nicht 1999, (mein Fehler, ich wurde mit einem alten Beispiel).
Sondern verweisen auf die Spezifikationen für SOAP 1.1 und 1.2 (je nachdem, was Sie verwenden) für die endgültige namespaces!