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 » Deployable WSDL issue in SOAP input node

Post new topic  Reply to topic
 Deployable WSDL issue in SOAP input node « View previous topic :: View next topic » 
Author Message
visasimbu
PostPosted: Mon Nov 17, 2014 3:54 pm    Post subject: Deployable WSDL issue in SOAP input node Reply with quote

Disciple

Joined: 06 Nov 2009
Posts: 171

Hi all,
I have a message flow like SOAP Input Node -> Trace -> compute -> soap reply.

SOAP Input node is configured with deployable WSDL file from the messge set.
I have created messageSet using mqsicreatemsgdefsfromwsdl command.

When I hit the message flow with soap message, I can see "problem creating SOAP tree from bitstream" in the input soap structure after soap input node in the debug mode. i am getting an error saying "cvc-complex-type.2.4.e: Unexpected element. Element "getEndpointDetails" is not one of the choices."

Could you please help me with the issue.


Trace node content with ${Root}

Code:

( ['SOAPRoot' : 0xfebfd8]
  (0x01000000:Name  ):Properties      = ( ['SOAPPROPERTYPARSER' : 0x1000eb8]
    (0x03000000:NameValue):MessageSet             = 'newProject3' (CHARACTER)
    (0x03000000:NameValue):MessageType            = '' (CHARACTER)
    (0x03000000:NameValue):MessageFormat          = '' (CHARACTER)
    (0x03000000:NameValue):Encoding               = 546 (INTEGER)
    (0x03000000:NameValue):CodedCharSetId         = 1208 (INTEGER)
    (0x03000000:NameValue):Transactional          = FALSE (BOOLEAN)
    (0x03000000:NameValue):Persistence            = FALSE (BOOLEAN)
    (0x03000000:NameValue):CreationTime           = GMTTIMESTAMP '2014-11-17 23:36:30.784' (GMTTIMESTAMP)
    (0x03000000:NameValue):ExpirationTime         = -1 (INTEGER)
    (0x03000000:NameValue):Priority               = 0 (INTEGER)
    (0x03000000:NameValue):ReplyIdentifier        = X'000000000000000000000000000000000000000000000000' (BLOB)
    (0x03000000:NameValue):ReplyProtocol          = 'SOAP-AXIS2' (CHARACTER)
    (0x03000000:NameValue):Topic                  = NULL
    (0x03000000:NameValue):ContentType            = 'text/xml;charset=UTF-8' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
  )
  (0x01000000:Name  ):HTTPInputHeader = ( ['WSINPHDR' : 0xfebd70]
    (0x03000000:NameValue):X-Original-HTTP-Command = 'POST http://localhost:7800/esb/services/wsrrlookup HTTP/1.1' (CHARACTER)
    (0x03000000:NameValue):Accept-Encoding         = 'gzip,deflate' (CHARACTER)
    (0x03000000:NameValue):Content-Type            = 'text/xml;charset=UTF-8' (CHARACTER)
    (0x03000000:NameValue):SOAPAction              = '""' (CHARACTER)
    (0x03000000:NameValue):Content-Length          = '1382' (CHARACTER)
    (0x03000000:NameValue):Host                    = 'localhost:7800' (CHARACTER)
    (0x03000000:NameValue):Connection              = 'Keep-Alive' (CHARACTER)
    (0x03000000:NameValue):User-Agent              = 'Apache-HttpClient/4.1.1 (java 1.5)' (CHARACTER)
    (0x03000000:NameValue):X-Remote-Addr           = '127.0.0.1' (CHARACTER)
    (0x03000000:NameValue):X-Remote-Host           = '127.0.0.1' (CHARACTER)
    (0x03000000:NameValue):X-Server-Name           = 'localhost' (CHARACTER)
    (0x03000000:NameValue):X-Server-Port           = '7800' (CHARACTER)
    (0x03000000:NameValue):X-Query-String          = '' (CHARACTER)
    (0x03000000:NameValue):X-Scheme                = 'http' (CHARACTER)
  )
  (0x01000000:Folder):SOAP            =


Exception list
Code:

<exceptionlist>

  <RecoverableException>
   <File>F:\build\S700_P\src\DataFlowEngine\ImbTraceNode.cpp</File>
   <Line>341</Line>
   <Function>ImbTraceNode::evaluate</Function>
   <Type>ComIbmTraceNode</Type>
   <Name>com/esb/util/esbWSRRLookup#FCMComposite_1_3</Name>
   <Label>com.esb.util.esbWSRRLookup.Trace</Label>
   <Catalog>BIPmsgs</Catalog>
   <Severity>3</Severity>
   <Number>2230</Number>
   <Text>Caught exception and rethrowing</Text>
   <ParserException>
    <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPParser.cpp</File>
    <Line>2061</Line>
    <Function>ImbSOAPParser::createSoapShapedTree</Function>
    <Type></Type>
    <Name></Name>
    <Label></Label>
    <Catalog>BIPmsgs</Catalog>
    <Severity>3</Severity>
    <Number>3614</Number>
    <Text>problem creating SOAP tree from bitstream</Text>
    <ParserException>
     <File>F:\build\S700_P\src\MTI\MTIforBroker\GenXmlParser4\ImbXMLNSCParser.cpp</File>
     <Line>954</Line>
     <Function>ImbXMLNSCParser::parseRightSibling</Function>
     <Type></Type>
     <Name></Name>
     <Label></Label>
     <Catalog>BIPmsgs</Catalog>
     <Severity>3</Severity>
     <Number>5009</Number>
     <Text>XML Parsing Errors have occurred</Text>
     <ParserException>
      <File>F:\build\S700_P\src\MTI\MTIforBroker\GenXmlParser4\ImbXMLNSCDocHandler.cpp</File>
      <Line>634</Line>
      <Function>ImbXMLNSCDocHandler::handleParseErrors</Function>
      <Type>ComIbmSOAPInputNode</Type>
      <Name>com/esb/util/esbWSRRLookup#FCMComposite_1_1</Name>
      <Label>com.esb.util.esbWSRRLookup.SOAP Input</Label>
      <Catalog>BIPmsgs</Catalog>
      <Severity>3</Severity>
      <Number>5025</Number>
      <Text>A schema validation error has occurred while parsing the XML document</Text>
      <Insert>
       <Type>2</Type>
       <Text>5008</Text>
      </Insert>
      <Insert>
       <Type>2</Type>
       <Text>2</Text>
      </Insert>
      <Insert>
       <Type>2</Type>
       <Text>24</Text>
      </Insert>
      <Insert>
       <Type>2</Type>
       <Text>27</Text>
      </Insert>
      <Insert>
       <Type>5</Type>
       <Text>cvc-complex-type.2.4.e: Unexpected element. Element "getEndpointDetails" is not one of the choices.</Text>
      </Insert>
      <Insert>
       <Type>5</Type>
       <Text>/XMLNSC/http://schemas.xmlsoap.org/soap/envelope/:Envelope/http://schemas.xmlsoap.org/soap/envelope/:Body</Text>
      </Insert>
     </ParserException>
    </ParserException>
   </ParserException>
  </RecoverableException>

</exceptionlist>


I have tried some options like changing the validation from "Content and value" to "none". Since i dont want to validate the content of the message.
It leads me to other exception saying "no operation found matching payload"

Exception list for validation "none" in the soap input node and trace file remains same as above.

Code:

<exceptionlist>
 <name>
  <RecoverableException>
   <File>F:\build\S700_P\src\DataFlowEngine\ImbTraceNode.cpp</File>
   <Line>341</Line>
   <Function>ImbTraceNode::evaluate</Function>
   <Type>ComIbmTraceNode</Type>
   <Name>com/esb/util/esbWSRRLookup#FCMComposite_1_3</Name>
   <Label>com.esb.util.esbWSRRLookup.Trace</Label>
   <Catalog>BIPmsgs</Catalog>
   <Severity>3</Severity>
   <Number>2230</Number>
   <Text>Caught exception and rethrowing</Text>
   <ParserException>
    <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPParser.cpp</File>
    <Line>2061</Line>
    <Function>ImbSOAPParser::createSoapShapedTree</Function>
    <Type></Type>
    <Name></Name>
    <Label></Label>
    <Catalog>BIPmsgs</Catalog>
    <Severity>3</Severity>
    <Number>3614</Number>
    <Text>problem creating SOAP tree from bitstream</Text>
    <ParserException>
     <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPParser.cpp</File>
     <Line>1784</Line>
     <Function>ImbSOAPParser::createSoapShapedTree</Function>
     <Type></Type>
     <Name></Name>
     <Label></Label>
     <Catalog>BIPmsgs</Catalog>
     <Severity>3</Severity>
     <Number>3602</Number>
     <Text>no operation found matching payload</Text>
     <Insert>
      <Type>5</Type>
      <Text>{}getEndpointDetails</Text>
     </Insert>
     <Insert>
      <Type>5</Type>
      <Text>WSRRLookupBinding</Text>
     </Insert>
     <Insert>
      <Type>5</Type>
      <Text>C:\Documents and Settings\All Users\Application Data\IBM\MQSI\components\MB7BRK\ecf5e5bf-4901-0000-0080-81875cfe73a2\config\XSD\newProject3/com/abc/www/services/wsrrlookupwsdlfile/WSRRLookupService.wsdl</Text>
     </Insert>
    </ParserException>
   </ParserException>
  </RecoverableException>
 </name>
</exceptionlist>


Last edited by visasimbu on Mon Nov 17, 2014 7:06 pm; edited 2 times in total
Back to top
View user's profile Send private message Send e-mail
shashivarungupta
PostPosted: Mon Nov 17, 2014 6:02 pm    Post subject: Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

Code:
<Text>XML Parsing Errors have occurred</Text>

I can see this in your given details.

Are you sure that your input message is valid and well structured as per the schema model?

You can validate you request/inbound message using SOAPUI Tool (if you're using it). There could be other tools as well for validation of request message, that you might wanted to use to test the validity of the input message structure.

As per IBM Manual " The DFDL, XMLNSC, and SOAP domains validate predefined messages directly against message model schema files. "

Also

"By default, parsers perform some validity checking on a message, but only to ensure the integrity of the parsing operation. However, you can validate a message more stringently against the message model contained in the message set by specifying validation options on certain nodes in your message flow.
"

Also may check about Parse Timing property of the SOAPInput Node, for better understanding of Parsing and Validation.


Incase you don't want to validate the input message, try using SOAPInput in Gateway Mode Or use HTTPInput node.


_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
visasimbu
PostPosted: Mon Nov 17, 2014 6:42 pm    Post subject: Re: Deployable WSDL issue in SOAP input node Reply with quote

Disciple

Joined: 06 Nov 2009
Posts: 171

My input xml is well formed.
Back to top
View user's profile Send private message Send e-mail
visasimbu
PostPosted: Mon Nov 17, 2014 7:02 pm    Post subject: Reply with quote

Disciple

Joined: 06 Nov 2009
Posts: 171

shashivarungupta wrote:
Code:
<Text>XML Parsing Errors have occurred</Text>


Are you sure that your input message is valid and well structured as per the schema model?

You can validate you request/inbound message using SOAPUI Tool (if you're using it).



Hi Shashivarungupta,
Thanks for your point. I have created the input message from wsdl and just corrected my input message with proper namespace.

Now i have ended up with same error for validation turned on (content and value) in soap input node. The error is saying "no operation found matching payload" when it goes to the SOAP reply node.

Code:

<exceptionlist>
 <name>
  <RecoverableException>
   <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPReplyNode.cpp</File>
   <Line>386</Line>
   <Function>ImbSOAPReplyNode::evaluate</Function>
   <Type>ComIbmSOAPReplyNode</Type>
   <Name>com/esb/util/esbWSRRLookup#FCMComposite_1_6</Name>
   <Label>com.esb.util.esbWSRRLookup.SOAP Reply</Label>
   <Catalog>BIPmsgs</Catalog>
   <Severity>3</Severity>
   <Number>3752</Number>
   <Text>Error occurred in ImbSOAPReplyHelper::makeSOAPReply()</Text>
   <ParserException>
    <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPParser.cpp</File>
    <Line>1291</Line>
    <Function>ImbSOAPParser::refreshBitStreamFromElementsInner</Function>
    <Type></Type>
    <Name></Name>
    <Label></Label>
    <Catalog>BIPmsgs</Catalog>
    <Severity>3</Severity>
    <Number>3605</Number>
    <Text>SOAP tree cannot be serialized</Text>
    <ParserException>
     <File>F:\build\S700_P\src\WebServices\WSLibrary\ImbSOAPParser.cpp</File>
     <Line>711</Line>
     <Function>ImbSOAPParser::refreshBitStreamFromElementsInner</Function>
     <Type></Type>
     <Name></Name>
     <Label></Label>
     <Catalog>BIPmsgs</Catalog>
     <Severity>3</Severity>
     <Number>3602</Number>
     <Text>no operation found matching payload</Text>
     <Insert>
      <Type>5</Type>
      <Text>{http://services.cna.com/framework/services/WSRRLookup}getEndpointDetails</Text>
     </Insert>
     <Insert>
      <Type>5</Type>
      <Text>WSRRLookupBinding</Text>
     </Insert>
     <Insert>
      <Type>5</Type>
      <Text>C:\Documents and Settings\All Users\Application Data\IBM\MQSI\components\MB7BRK\ecf5e5bf-4901-0000-0080-81875cfe73a2\config\XSD\newProject3/com/abc/www/services/wsrrlookupwsdlfile/WSRRLookupService.wsdl</Text>
     </Insert>
    </ParserException>
   </ParserException>
  </RecoverableException>
 </name>
</exceptionlist>
Back to top
View user's profile Send private message Send e-mail
shashivarungupta
PostPosted: Mon Nov 17, 2014 7:15 pm    Post subject: Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

Quote:
"no operation found matching payload"

As you've mentioned above...
Do you find operation has action blank in your wsdl ? If yes then it should be either be corrected in wsdl OR be dealt at ESQL/Broker Level.

Quote:

Generally while creating a wsdl.. the format looks like this..
<wsdl:operation name="XYZ">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="XYZ">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="XYZresp">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="XYZException">
<soap:fault name="XYZException" use="literal"/>
</wsdl:fault>
</wsdl:operation>


Another thing...

Also, you need to make sure that you're using correct Binding Operation (specially when you're using SOAPRequest Node).


_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
shashivarungupta
PostPosted: Mon Nov 17, 2014 7:24 pm    Post subject: Reply with quote

Grand Master

Joined: 24 Feb 2009
Posts: 1343
Location: Floating in space on a round rock.

Try introducing "TCP/IP Monitor" and check if that works till some point or it also fails.

_________________
*Life will beat you down, you need to decide to fight back or leave it.
Back to top
View user's profile Send private message Send e-mail
visasimbu
PostPosted: Mon Nov 17, 2014 8:44 pm    Post subject: Reply with quote

Disciple

Joined: 06 Nov 2009
Posts: 171

Hi shashivarungupta,
Thanks for your valuable inputs. I have reconstructed a SOAP reply message against my WSDL. It worked.

Thanks for your help !
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 » Deployable WSDL issue in SOAP input node
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.