Author |
Message
|
RaviKrG |
Posted: Tue Mar 17, 2009 9:25 pm Post subject: soap req message parsing problem |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Hi I am trying to understand web services in MB through soap nodes.
I have created a flow as SOAPIn Node -> Sub Flow -> SOAPReply Node
Sub Flow: Input Node -> Extarct Node
Label Node -> Output Node
I have set the SAOP Input node properties according to the wsdl file which was generated from the message set.
Mesage set : Web service soap message set
I created two messages input and output. and the body of the soap message contains the above message input and output as local references which further contains the element reference Player.
Now I am trying to put the input message through soapUI tool as
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://tempuri.org/soapreqres">
<soapenv:Header/>
<soapenv:Body>
<soap:Input>
<soap:Player>jsdjsj</soap:Player>
</soap:Input>
</soapenv:Body>
</soapenv:Envelope>
But I get an Error:
BIP2230E: Error detected whilst processing a message in node 'soapreqres.soapreqresService.Extract'.
The message broker detected an error whilst processing a message in node 'soapreqres.soapreqresService.Extract'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error. : /build/S610_P/src/DataFlowEngine/PluginInterface/ImbJniNode.cpp: 1021: ImbJniNode::evaluate: ComIbmJniNode: soapreqres#FCMComposite_1_2.gen/soapreqresService_soapreqres#FCMComposite_1_1
BIP3614E: A SOAP logical tree cannot be built from the message bitstream.
The bitstream is not a valid Web service message.
Review further error messages for an indication to the cause of the error. : /build/S610_P/src/WebServices/WSLibrary/ImbSOAPParser.cpp: 1712: ImbSOAPParser::parseSoapTree: :
BIP5009E: XML Parsing Errors have occurred.
Errors have occurred during parsing of XML.
Review further error messages for an indication to the cause of the errors. : /build/S610_P/src/MTI/MTIforBroker/GenXmlParser4/ImbXMLNSCParser.cpp: 858: ImbXMLNSCParser::parseFirstChild: :
BIP5025E: XML schema validation error ''Unexpected root tag. Element "soapenv:Envelope" is not a global element.'' on line '1' column '120' when parsing element ''/XMLNSC''. Internal error codes: 5032, 2.
This error was reported by the XMLNSC parser. The XML document being parsed is not valid according to the message definitions in the message set.
The XML document has violated the rules expressed in the message definition files in the message set. : /build/S610_P/src/MTI/MTIforBroker/GenXmlParser4/ImbXMLNSCDocHandler.cpp: 527: ImbXMLNSCDocHandler::handleParseErrors: ComIbmSOAPInputNode: soapreqres#FCMComposite_1_1
Can anybody tell is there any thing missing because of which I am getting this error or I need to change anything i feel the message set |
|
Back to top |
|
 |
MQEnthu |
Posted: Tue Mar 17, 2009 9:41 pm Post subject: |
|
|
 Partisan
Joined: 06 Oct 2008 Posts: 329 Location: India
|
RaviKrG wrote: |
This error was reported by the XMLNSC parser. The XML document being parsed is not valid according to the message definitions in the message set.
The XML document has violated the rules expressed in the message definition files in the message set. : /build/S610_P/src/MTI/MTIforBroker/GenXmlParser4/ImbXMLNSCDocHandler.cpp: 527: ImbXMLNSCDocHandler::handleParseErrors: ComIbmSOAPInputNode: soapreqres#FCMComposite_1_1 |
Check whether the input message you have sent through SOAPUI is valid? Try validating it against the schema... _________________ -----------------------------------------------
It is good to remember the past,
but don't let past capture your future |
|
Back to top |
|
 |
RaviKrG |
Posted: Tue Mar 17, 2009 10:05 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Thanks MQEnthu,
I did validate the soap message in the soapUI tool and found OK.
Still with google to get whats the problem here |
|
Back to top |
|
 |
MQEnthu |
Posted: Tue Mar 17, 2009 10:09 pm Post subject: |
|
|
 Partisan
Joined: 06 Oct 2008 Posts: 329 Location: India
|
Can you post the schema file? _________________ -----------------------------------------------
It is good to remember the past,
but don't let past capture your future |
|
Back to top |
|
 |
RaviKrG |
Posted: Tue Mar 17, 2009 10:30 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:group name="MIME_header_fields">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="Content-Type">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="boundary" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string"/>
<xsd:attribute name="start" type="xsd:string"/>
<xsd:attribute name="start-info" type="xsd:string"/>
<xsd:attribute name="charset" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Content-Transfer-Encoding">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="7bit"/>
<xsd:enumeration value="8bit"/>
<xsd:enumeration value="binary"/>
<xsd:enumeration value="quoted-printable"/>
<xsd:enumeration value="base64"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Content-Id" type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="Content-Description" type="xsd:string"/>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="MIME_Headers_type">
<xsd:sequence>
<xsd:group ref="MIME_header_fields"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Attachment_type">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="MIME_Headers" type="MIME_Headers_type"/>
<xsd:element maxOccurs="1" minOccurs="1" name="Data" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="SOAP_Msg_type">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="Context">
<xsd:complexType>
<xsd:sequence maxOccurs="1" minOccurs="1">
<xsd:element maxOccurs="1" minOccurs="0" name="SOAP_Version">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="1.1"/>
<xsd:enumeration value="1.2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Namespace">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="_XmlDeclaration">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Version" type="xsd:string"/>
<xsd:attribute name="Encoding" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="MIME_Headers" type="MIME_Headers_type"/>
</xsd:sequence>
<xsd:attribute name="port" type="xsd:string"/>
<xsd:attribute name="portType" type="xsd:string"/>
<xsd:attribute name="operation" type="xsd:string"/>
<xsd:attribute name="operationType" type="xsd:string"/>
<xsd:attribute name="service" type="xsd:string"/>
<xsd:attribute name="fileName" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Header">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:choice>
</xsd:choice>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="Body">
<xsd:complexType>
<xsd:sequence maxOccurs="1">
<xsd:choice>
<xsd:element ref="Input"/>
<xsd:element ref="Output"/>
</xsd:choice>
</xsd:sequence>
<xsd:anyAttribute namespace="##any" processContents="lax"/>
</xsd:complexType>
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Attachment">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<!-- xsd:element name="your-content-ID" type="Attachment_type"/ -->
<xsd:any namespace="##any" processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="SOAP_Domain_Msg" type="SOAP_Msg_type">
</xsd:element>
<xsd:complexType name="Input_t">
<xsd:sequence>
<xsd:element ref="Player"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Input" type="Input_t">
</xsd:element>
<xsd:complexType name="Output_t">
<xsd:sequence>
<xsd:element ref="Player_Name"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Output" type="Output_t">
</xsd:element>
<xsd:element name="Player" type="xsd:string"/>
<xsd:element name="Player_Name" type="xsd:string"/>
</xsd:schema> |
|
Back to top |
|
 |
WMBDEV1 |
Posted: Wed Mar 18, 2009 1:54 am Post subject: |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
Can you post the generated WSDL please?  |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Mar 18, 2009 6:08 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://tempuri.org/soapreqres" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="soapreqres" targetNamespace="http://tempuri.org/soapreqres">
<wsdl:documentation>
<wsdl:appinfo source="WMQI_APPINFO">
<MRWSDLAppInfo imported="true">
<binding hasEncoding="false" imported="true" name="soapreqresSOAP_HTTP_Binding" originalBindingStyle="document"/>
</MRWSDLAppInfo>
</wsdl:appinfo>
</wsdl:documentation>
<wsdl:types>
<xsd:schema xmlns:mrm="http://tempuri.org/soapreqres" targetNamespace="http://tempuri.org/soapreqres" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation=".//soap.mxsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="Operation1_in">
<wsdl:part element="tns:Input" name="Input"/>
</wsdl:message>
<wsdl:message name="Operation1_out">
<wsdl:part element="tns:Output" name="Output"/>
</wsdl:message>
<wsdl:message name="Operation1_fault1">
<wsdl:part element="tns:Input" name="Input"/>
</wsdl:message>
<wsdl:portType name="soapreqresPortType">
<wsdl:operation name="Operation1">
<wsdl:input message="tns:Operation1_in" name="Operation1_Input"/>
<wsdl:output message="tns:Operation1_out" name="Operation1_Output"/>
<wsdl:fault message="tns:Operation1_fault1" name="Operation1_Fault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="soapreqresSOAP_HTTP_Binding" type="tns:soapreqresPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Operation1">
<soap:operation/>
<wsdl:input name="Operation1_Input">
<soap:body parts="Input" use="literal"/>
</wsdl:input>
<wsdl:output name="Operation1_Output">
<soap:body parts="Output" use="literal"/>
</wsdl:output>
<wsdl:fault name="Operation1_Fault">
<soap:fault name="Operation1_Fault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="soapreqresSOAP_HTTP_Service">
<wsdl:port binding="tns:soapreqresSOAP_HTTP_Binding" name="SOAP_HTTP_Port">
<soap:address location="http://localhost:7800/soapreqresSOAP_HTTP_Service"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions> |
|
Back to top |
|
 |
broker_new |
Posted: Wed Mar 18, 2009 6:52 pm Post subject: |
|
|
 Yatiri
Joined: 30 Nov 2006 Posts: 614 Location: Washington DC
|
It looks like you are using the SOAP Attachments.
Really you cannot test it using the SOAPUI for testing the attachments.
Create one more message flow (use the MRM) to call the exposed web service
MQInput>>>Compute>>>HTTPRequest>>>Trace
and in ESQL populate SOAP headers ..the content-type, MIME headers and content transfer encoding ..and try calling the web service and
capture the response in trace node.. _________________ IBM ->Let's build a smarter planet |
|
Back to top |
|
 |
RaviKrG |
Posted: Wed Mar 18, 2009 7:22 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Sorry broker_new there are no attachments |
|
Back to top |
|
 |
WMBDEV1 |
Posted: Thu Mar 19, 2009 1:11 am Post subject: |
|
|
Sentinel
Joined: 05 Mar 2009 Posts: 888 Location: UK
|
Is the SOAP Envelope modelled in your generated message set?
If you regenerate the message set from the WSDL rather than the XSd, does it look different then? |
|
Back to top |
|
 |
RaviKrG |
Posted: Thu Mar 19, 2009 6:17 pm Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
WMBDEV1, I have not generated the message set from wsdl or any xsd file. Instead I created a message set and then generated the wsdl from from that message set and then created the flow which together was deployed.
I feel my message set is not proper ie the message set I have created might not be correct. |
|
Back to top |
|
 |
MQEnthu |
Posted: Fri Mar 20, 2009 12:01 am Post subject: |
|
|
 Partisan
Joined: 06 Oct 2008 Posts: 329 Location: India
|
RaviKrG wrote: |
I feel my message set is not proper ie the message set I have created might not be correct. |
Did you generate the xsd (posted here) from the message set you created manually?...the message you are trying to put does not seem to be according to the schema... try validating the message against the XSD using XML spy or similar tools... _________________ -----------------------------------------------
It is good to remember the past,
but don't let past capture your future |
|
Back to top |
|
 |
RaviKrG |
Posted: Fri Mar 20, 2009 12:43 am Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
Thanks MQEnthu, No I did not generate any xsd file.
As before I have only generated wsdl file from the message set and if at all any other file is generated then I will not be able to tell.
But finally today I could resolve the issue and for my request send I get my response now.
Thanks for your help. |
|
Back to top |
|
 |
MQEnthu |
Posted: Fri Mar 20, 2009 12:46 am Post subject: |
|
|
 Partisan
Joined: 06 Oct 2008 Posts: 329 Location: India
|
RaviKrG wrote: |
But finally today I could resolve the issue and for my request send I get my response now.
Thanks for your help. |
What was the problem? How did you manage to solve it? _________________ -----------------------------------------------
It is good to remember the past,
but don't let past capture your future |
|
Back to top |
|
 |
RaviKrG |
Posted: Fri Mar 20, 2009 12:53 am Post subject: |
|
|
 Master
Joined: 07 Sep 2008 Posts: 240
|
As stated before my message set was not looking proper because of which I was not able to find my generated wsdl file proper. Still I am not sure of how to create message set in these scenario.
Finally I did the following
1) Created a wsdl file using this link http://wiki.eclipse.org/index.php/Introduction_to_the_WSDL_Editor
2) Created the message set using the wsdl file created in step 1
3) Created the message flow by using the wsdl file and got the flow as soapinput --> subflow ------- then replynode but this was not connected.
4) added a mapping node in between subflow and reply node (soapinnode -> subflow -> mapping node -> reply node
Finally tested and I got all proper.
But please do let me know if the above steps taken are right or wrong or I need to modify any thing here |
|
Back to top |
|
 |
|