Exception occurred while processing the body of the message

Hi,
I suffered a trouble about Web Services interoperability about webMethods 6.1.

First,I make a flow service and then generate a WSDL from this flow service.I used SOAP-MSG as the Protocol,HTTP as the Via Transport and a document data type like RosettaNet PIP4B2 as the input when I generated the WSDL.
Then,I import this WSDL file to my .Net C# program and make this program as the web service client.
At the beginning,I forgot to assign namespaces to the flow service and the input document data type described in the 31th page of Web Service Developers Guide 6.pdf.So,there was a “namespace:localname: service not be found” error.Then,I repaired this issue.But there was a new exception like "[ISC.0088.0001E] SOAPException: [ISS.0088.9134]
Exception occurred while processing the body of the message “.
This issue had been submit but no answer in “[URL=“http://advantage.webmethods.com/cgi-bin/advantage/main.jsp?w=0&targChanId=knowledgebase&oid=1611894020”]http://advantage.webmethods.com/cgi-bin/advantage/main.jsp?w=0&targChanId=knowledgebase&oid=1611894020[/URL]”,It seems like a fix " IS 6-1 Fix11” can resolve this issue.

I attached the Level 10 log as below:

2005-03-16 16:40:21 CST [ISS.0109.0001V1] Service OutboundTest:outboundTest was
invoked via SOAP
2005-03-16 16:40:21 CST [ISC.0088.0001E] SOAPException: [ISS.0088.9134] Exceptio
n occurred while processing the body of the message
2005-03-16 16:40:21 CST [ISC.0038.0002V3] → HTTP/1.0 500 Internal Server Error

2005-03-16 16:40:21 CST [ISC.0038.0002V3] → Set-Cookie: ssnid=5q6pC7zfC|o95tUk
IVK7YzhPr3Ug=555525; path=/;
2005-03-16 16:40:21 CST [ISC.0038.0002V3] → Content-Type: text/xml;charset=utf
-8
2005-03-16 16:40:21 CST [ISC.0038.0002V3] → Connection: Keep-Alive
2005-03-16 16:40:21 CST [ISC.0038.0002V3] → Content-Length: 878

And when I used webMethods as the web service client,I run the client and got a soap fault as below:

[highlight=xml]

<?xml> SOAP-ENV:Client [ISS.0088.9134] Exception occurred while processing the body of the message [URL="http://10.139.14.25:5555/soap/default"]http://10.139.14.25:5555/soap/default[/URL] com.wm.app.b2b.server.ServiceException java.lang.Exception: missing required parameter 'document' [/highlight]

Kenny,
Getting doc/literal to work from webMethods can be a bit tricky. A couple of things to look at:
1)Use a utility like this to see what you are sending from .Net to webMethods is what you expect and what webMethods expects.

[url=“http://www.pocketsoap.com/tcpTrace/”]http://www.pocketsoap.com/tcpTrace/[/url]

2)Make sure your input and output document comply with webMethods guidelines.

3)The use of a namespace prefix is required, make sure you are constructing this correctly.

here is a sample of a working doc/literal that I used to test with .Net

Sample Doc/literal
PgnCreateTicket.zip (14.4 k)

markg
http://darth.homelinux.net

Hi,Mark
You are right.I had resolved this issue.Thank you very much!

Kenny

Mark

Thans for you sample. but I get the following error when I try to generate a WSDL file. please give me you help. Thanks.

com.wm.app.b2b.server.ServiceException: [ISS.0092.9026] Input document type
PgnCreateTicket.documents:servicerequest cannot be used to generate SOAP-MSG WSDL. 
Top level fields must have XML Namespace values.

    at wm.server.wsdl.createWSD(wsdl.java:103)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:324)

    at com.wm.app.b2b.server.JavaService.baseInvoke(JavaService.java:287)

    at com.wm.app.b2b.server.invoke.InvokeManager.process(InvokeManager.java:554)

    at com.wm.app.b2b.server.invoke.StatisticsProcessor.process(StatisticsProcessor.java:44)

    at com.wm.app.b2b.server.invoke.ServiceCompletionImpl.process(ServiceCompletionImpl.java:221)

    at com.wm.app.b2b.server.invoke.ValidateProcessor.process(ValidateProcessor.java:49)

    at com.wm.app.b2b.server.ACLManager.process(ACLManager.java:194)

    at com.wm.app.b2b.server.invoke.DispatchProcessor.process(DispatchProcessor.java:39)

    at com.wm.app.b2b.server.AuditLogManager.process(AuditLogManager.java:384)

    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:486)

    at com.wm.app.b2b.server.invoke.InvokeManager.invoke(InvokeManager.java:359)

    at com.wm.app.b2b.server.ServiceManager.invoke(ServiceManager.java:246)

    at com.wm.app.b2b.server.comm.DefaultServerRequestHandler.handleMessage(DefaultServerRequestHandler.java:97)

    at com.wm.app.b2b.server.HTTPMessageHandler.process(HTTPMessageHandler.java:167)

    at com.wm.app.b2b.server.Dispatch.run(Dispatch.java:298)

    at com.wm.util.pool.PooledThread.run(PooledThread.java:105)

    at java.lang.Thread.run(Thread.java:534)

The document types that you specify as the input and outputs in your WSDL should ideally contain only a single document each. Those “child” documents can have whatever structure you want (except for custom java objects). They should also have a value set in their XML Namespace property.

Mark

xiyangbo,
The input document should be ticket and the output should be response. The servicerequest document you tried to use is a broker document. Don’t use that one. I should probably put that in a readme. :slight_smile: