dotNet-WebService Problem

N

Neeldarax

Fortgeschrittenes Mitglied
32
Hallo zusammen,

ich kriege diese Fehlermeldung:
Code:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: [B]Die Anforderung konnte vom Server nicht verarbeitet werden. ---> Die Auflistung ist schreibgeschützt.[/B]
    at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178)
    at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:111)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107)
    at $Proxy28.getInformation(Unknown Source)
    at Test.main(Test.java:22).
Ich werde daraus schlau. Der Webservice geht unter vb.dotnet.

Sagt das jemanden was?

regards

ps.: Der Fehler kommt mit ksoap2-android-assembly-2.5.8-jar-with-dependencies.jar(Android) und auch mit Java sdk 6(Java)
 
Der Service auf dem Server versucht irgendwelche Objekte aus einer (schreibgeschützten) Collection zu entfernen oder zu verändern (z.B. Page.Request). Ohne nähere Informationen zum Code dort, wird eine weitere Diagnose schwer ;)
 
Hi,

dachte, könnte so jemanden bekannt sein.
Ich sag ma, der Webservice- und der Client-Code weißt keine Fehler auf, lasse mich aber einen besseren belehren...

Code:
POST /WIS.asmx HTTP/1.1
 Host: maskierter.host.de
 Content-Type: text/xml; charset=utf-8
 Content-Length: length
 SOAPAction: "http://url.de:8080/GetInformation" 
 <?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  
 <soap:Body>   
  <GetInformation xmlns="http://url.de:8080/"> 
     <method>string</method>   
    <params>string</params>    
 </GetInformation> 
  </soap:Body>
 </soap:Envelope>
host, url.. geändert

Für Javaclient.. wsimport usw... und dann.
Code:
        WIS wis = new WIS();

        WISSoap wisSoap = wis.getWISSoap();
        System.out.println(wisSoap);
        System.err.println(wisSoap.getInformation("methode",
                "param=p\\param2=p2"));
Für Androidclient
Code:
  final String METHOD_NAME = "GetInformation";
        final String NAMESPACE = "http://url.de:8080/";
        final String SOAP_ACTION = "\"" + NAMESPACE + METHOD_NAME + "\"";
        final String URL = "http://wis.maskierte.url.de/WIS.asmx?WSDL";

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
        request.addProperty("method", "methode");
        request.addProperty("params", "param...");

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);

        envelope.dotNet = true;
        envelope.setOutputSoapObject(request);

        AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
        SoapObject result = null;

        try {

            httpTransport.call(SOAP_ACTION, envelope);
            result = (SoapObject) envelope.getResponse();
        }catch (Exception e){
        //..
        }
        //..
hab ich was vergessen? ^^
Die URLs sind im Browser erreichbar. Und wie gesagt, vom anderen Projekt, leider kein Java-Projekt, wird das bereits genutzt.

edit.:
android exc
Code:
10-19 14:04:46.765: ERROR/error(2873): SoapFault - faultcode: 'soap:Server' faultstring: 'Die Anforderung konnte vom Server nicht verarbeitet werden. ---> Die Auflistung ist schreibgeschützt.' faultactor: 'null' detail: org.kxml2.kdom.Node@45a58078
10-19 14:04:46.765: ERROR/error(2873):     at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:136)
10-19 14:04:46.765: ERROR/error(2873):     at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
10-19 14:04:46.765: ERROR/error(2873):     at org.ksoap2.transport.Transport.parseResponse(Transport.java:96)
10-19 14:04:46.765: ERROR/error(2873):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:189)
10-19 14:04:46.765: ERROR/error(2873):     at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
 
Zuletzt bearbeitet:
Der Fehler tritt aber beim Webserver auf und nicht auf Client-Seite. Demnach stimmt irgendwas mit dem Webservice selbst nicht. Dort müsstest du in den Code hineinschauen (oder noch besser direkt rein debuggen, wenn du die Möglichkeit dazu hast).

Wieso schreibst du eigentlich "?WSDL" in die URL, wenn du den Service benutzen möchtest und dir die Definition eigentlich egal sein könnte?
 
"?WSDL" braucht man in den meisten Fällen nicht.(Hab auch selber keine Fäller eerlebt, wo man dies brauchte) Aber es sollte auch nicht stören...

Jedenfalls zum Fehler:
NameValueCollection.Set-Methode (System.Collections.Specialized)

Da kommt die Fehlermeldung her ^^
Danke für den Tipp. Reinschauen kann ich, aber debuggen nicht. Kann aber möglichen Fehlerquellen sehen.

Die Frage ist auch, könnte es Probleme mit "\\" als String übergabe geben?
 
Unwahrscheinlich, das müsste bei Problemen eine andere Exception geben (und müsste sowieso nochmal intern gekapselt/escaped werden).
 

Ähnliche Themen

W
  • WuDiDong
Antworten
3
Aufrufe
755
jogimuc
J
S
Antworten
4
Aufrufe
955
Sempervivum
S
R
Antworten
3
Aufrufe
1.571
Ritartet
R
Zurück
Oben Unten