ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » problem creating SOAP tree from bitstream-after SoapRequest

Post new topic  Reply to topic
 problem creating SOAP tree from bitstream-after SoapRequest « View previous topic :: View next topic » 
Author Message
sraghukumar
PostPosted: Wed Feb 18, 2015 10:07 am    Post subject: problem creating SOAP tree from bitstream-after SoapRequest Reply with quote

Apprentice

Joined: 15 Feb 2011
Posts: 49

Hi, Can someone please help me on the below problem , Thanks

Problem:
After a SOAP request node receives response, it is having problem in creating SOAP tree from bitstream. But I received the response, when ran using SOAP UI. I tried using Usertrace using MQ commands and I found this below information,

Error information captured using Usertrace:
2015-02-17 21:58:44.606448 20204 ParserException 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.
2015-02-17 21:58:44.606456 20204 ParserException BIP3601E: Operation mismatch. The SOAP payload ''{http://services.myservice.com/product/development/v1_0}createStyleResponse'' corresponds to operation ''createStyle'' in WSDL binding ''ProductDevelopmentServiceBinding_v1_0'', but the operation was previously specified as ''updateProductIntegrationStatus''.
The first child of the SOAP body matches a specific WSDL operation. This operation is different from the operation specified by a Content-Type (action), SOAPAction or WS-Addressing Action header.
Correct any SOAPAction or WS-Addressing Action header to match the operation identified by the SOAP payload.

Here is the WSDL how it looks:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:prod="http://services.myservice.com/product/development/v1_0" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://services.myservice.com/product/development/v1_0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ProductDevelopmentService" targetNamespace="http://services.myservice.com/product/development/v1_0">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://services.myservice.com/product/development/v1_0" schemaLocation="ProductDevelopmentServiceMessages.xsd"/>
</xsd:schema>
</wsdl:types>
<!-- MESSAGES -->
<wsdl:message name="createStyleRequestMsg">
<wsdl:part element="prod:createStyleRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="createStyleResponseMsg">
<wsdl:part element="prod:createStyleResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="updateProductRequestMsg">
<wsdl:part element="prod:updateProductRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="updateProductResponseMsg">
<wsdl:part element="prod:updateProductResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="updateProductIntegrationStatusRequestMsg">
<wsdl:part element="prod:updateProductIntegrationStatusRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="updateProductIntegrationStatusResponseMsg">
<wsdl:part element="prod:updateProductIntegrationStatusResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="updateProgramRequestMsg">
<wsdl:part element="prod:updateProgramRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="updateProgramResponseMsg">
<wsdl:part element="prod:updateProgramResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="updateStyleRequestMsg">
<wsdl:part element="prod:updateStyleRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="updateStyleResponseMsg">
<wsdl:part element="prod:updateStyleResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="createProductColorwayForSeasonRequestMsg">
<wsdl:part element="prod:createProductColorwayForSeasonRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="createProductColorwayForSeasonResponseMsg">
<wsdl:part element="prod:createProductColorwayForSeasonResponse" name="_outMsg"/>
</wsdl:message>
<wsdl:message name="testServiceRequestMsg">
<wsdl:part element="prod:testServiceRequest" name="_inMsg"/>
</wsdl:message>
<wsdl:message name="testServiceResponseMsg">
<wsdl:part element="prod:testServiceResponse" name="_outMsg"/>
</wsdl:message>
<!-- FAULT MESSAGES -->
<wsdl:message name="schemaValidationFault">
<wsdl:part element="prod:schemaValidationFault" name="fault"/>
</wsdl:message>
<wsdl:message name="serviceProcessingFault">
<wsdl:part element="prod:serviceProcessingFault" name="fault"/>
</wsdl:message>
<!-- PORT TYPES -->
<wsdl:portType name="ProductDevelopmentServicePortType_v1_0">
<wsdl:operation name="updateProductIntegrationStatus">
<wsdl:input message="tns:updateProductIntegrationStatusRequestMsg"/>
<wsdl:output message="tns:updateProductIntegrationStatusResponseMsg"/>
<wsdl:fault message="tns:schemaValidationFault" name="schemaValidationFault"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
<wsdl:operation name="createStyle">
<wsdl:input message="tns:createStyleRequestMsg"/>
<wsdl:output message="tns:createStyleResponseMsg"/>
<wsdl:fault message="tns:schemaValidationFault" name="schemaValidationFault"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
<wsdl:operation name="updateProduct">
<wsdl:input message="tns:updateProductRequestMsg"/>
<wsdl:output message="tns:updateProductResponseMsg"/>
<wsdl:fault message="tns:schemaValidationFault" name="schemaValidationFault"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
<wsdl:operation name="updateStyle">
<wsdl:input message="tns:updateStyleRequestMsg"/>
<wsdl:output message="tns:updateStyleResponseMsg"/>
<wsdl:fault message="tns:schemaValidationFault" name="schemaValidationFault"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
<wsdl:operation name="createProductColorwayForSeason">
<wsdl:input message="tns:createProductColorwayForSeasonRequestMsg"/>
<wsdl:output message="tns:createProductColorwayForSeasonResponseMsg"/>
<wsdl:fault message="tns:schemaValidationFault" name="schemaValidationFault"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
<wsdl:operation name="testService">
<wsdl:documentation>This operation is for testing purposes. It
provides an interface for clients to test various supported
scenarios.</wsdl:documentation>
<wsdl:input message="tns:testServiceRequestMsg"/>
<wsdl:output message="tns:testServiceResponseMsg"/>
<wsdl:fault message="tns:serviceProcessingFault" name="processingFault"/>
</wsdl:operation>
</wsdl:portType>
<!-- BINDINGS -->
<wsdl:binding name="ProductDevelopmentServiceBinding_v1_0" type="tns:ProductDevelopmentServicePortType_v1_0">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="updateProductIntegrationStatus">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/updateProductIntegrationStatus" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="schemaValidationFault">
<soap:fault name="schemaValidationFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="createStyle">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/createStyle" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="schemaValidationFault">
<soap:fault name="schemaValidationFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="updateProduct">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/updateProduct" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="schemaValidationFault">
<soap:fault name="schemaValidationFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="updateStyle">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/updateStyle" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="schemaValidationFault">
<soap:fault name="schemaValidationFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="createProductColorwayForSeason">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/createProductColorwayForSeason" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
<wsdl:fault name="schemaValidationFault">
<soap:fault name="schemaValidationFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="testService">
<soap:operation soapAction="http://services.myservice.com/product/development/v1_0/testService" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="processingFault">
<soap:fault name="processingFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<!-- SERVICE INTERFACES -->
<wsdl:service name="ProductDevelopmentService_v1_0">
<wsdl:port binding="tns:ProductDevelopmentServiceBinding_v1_0" name="ProductDevelopmentServicePort_v1_0">
<soap:address location="http://localhost:7800/ProductDevelopmentWS/ProductDevelopmentService_v1_0"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
_________________
-----------
Raghu
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Wed Feb 18, 2015 10:12 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Code:
2015-02-17 21:58:44.606456 20204 ParserException BIP3601E: Operation mismatch. The SOAP payload ''{http://services.myservice.com/product/development/v1_0}createStyleResponse'' corresponds to operation ''createStyle'' in WSDL binding ''ProductDevelopmentServiceBinding_v1_0'', but the operation was previously specified as ''updateProductIntegrationStatus''.
The first child of the SOAP body matches a specific WSDL operation. This operation is different from the operation specified by a Content-Type (action), SOAPAction or WS-Addressing Action header.
Correct any SOAPAction or WS-Addressing Action header to match the operation identified by the SOAP payload


This is reasonably clear and straightforward.

Someone created a soap response message that had a root tag of "createStyleResponse", that belongs to an operation named "createStyle". They provided this to a SOAP request that was expecting a response that belonged to an operation named "updateProductIntegrationStatus".
Back to top
View user's profile Send private message
sraghukumar
PostPosted: Wed Feb 18, 2015 11:48 am    Post subject: Operation mismatch Reply with quote

Apprentice

Joined: 15 Feb 2011
Posts: 49

Thanks for the response.

I set the binding operation dynamically as,

Code:
SET OutputLocalEnvironment.Destination.SOAP.Request.Operation = 'createStyle';

Note: set the compute mode property of compute node[in which you create the soap request message] to 'LocalEnvironment and Message'.

Since my flow is calling different operations on same web service and i'm using one SoapRequest node. I should set the binding operation dynamically while I create the soap request message for each operation.

Before I had this solution, the soapRequest node was expecting the response for 'updateProductIntegrationStatus' operation which is set by default.
_________________
-----------
Raghu
Back to top
View user's profile Send private message Send e-mail
fjb_saper
PostPosted: Thu Feb 19, 2015 5:26 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

It really depends whether or not you are operating in gateway mode.
If you are operating in gateway mode, make sure the value matches what is in the corresponding wsdl.
Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » problem creating SOAP tree from bitstream-after SoapRequest
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.