WS crash: Complex type: {detail} is missing mandatory node: <body>

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

WS crash: Complex type: {detail} is missing mandatory node: <body>

Philippe Demaecker

Hello list,

 

I’m running into a crash running a web service at a customer in vw 7.7.

 

Our application acts as a client, the other company’s application acts as a server.

 

To reproduce this crash I have set up a mock service acting as a server, which returns following SOAP when invoking a request “getCutlist” (this is the SOAP I get as result from our customer’s service):

 

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

   <soapenv:Body>

      <soapenv:Fault>

         <faultcode>soapenv:Server.generalException</faultcode>

         <faultstring/>

         <detail>

            <ns1:EssenceAccessException xmlns:ns1="http://cutlistControl.essencewebservice.dmm.s4m.de">

               <errorcode>421</errorcode>

               <msg>java.util.NoSuchElementException: There is no CutList with ID=11291</msg>

            </ns1:EssenceAccessException>

         </detail>

      </soapenv:Fault>

   </soapenv:Body>

</soapenv:Envelope>

 

 

To simulate the “getCutlist” request I set up a client in VisualWorks 7.7:

 

1.       In a vanilla 7.7 image, load parcel Web Services/WSDLWizard.

2.       Generate WS client classes using the Web Services Wizard and enclosed WSDL (no server, no services classes)

3.       Start the client:

 

"Start the client"

client := CutlistControlClient new.

client start.

 

4.       Do request:

 

"Services invocation"     

[value := client getCutlist: ‘1’]

on: EssenceAccessException

       do: [ :exception | Dialog warn: exception errorString ].

 

I then get the following UHE while unmarshalling (full stack enclosed):

Unhandled exception: Complex type: {detail} is missing mandatory node: <body>

Protocols.TimedPromise>>value

optimized [] in Opentalk.RemoteRequest>>waitForReply:

[…]

 

When I change the namespace of the SOAP response to something else, the request does not crash and correctly throws a SOAPFault.

E.g. <ns1:EssenceAccessException xmlns:ns1="XXX">

 

Is this a bug or am I missing something?

 

I’d appreciate any insights.

 

Thanks,

Philippe

 

 

 


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

CutlistControlService2.wsdl (4K) Download Attachment
Crash report.txt (158K) Download Attachment