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 » ParserException BIP5005E: No valid body of document found

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 ParserException BIP5005E: No valid body of document found « View previous topic :: View next topic » 
Author Message
EricCox
PostPosted: Thu Oct 11, 2012 12:35 pm    Post subject: ParserException BIP5005E: No valid body of document found Reply with quote

Master

Joined: 08 Apr 2011
Posts: 292

To all,

I send an inbound COBOL structure to a Subflow. In the subflow I use a ResetContentDescriptor to assign the message set, declare necessary SOAP output code page and encoding, null out the MQ header, reach into the message set for values and lay down required SOAP Header elements.

All the ESQL appears to assign properly. But when the Subflow sends the message to the HTTP Reply node I get this BIP5005E error.

What are the common causes for this error. I'm following, trying to, an exact pattern that I have for other message handling. The difference is here I'm going into and out of a common Subflow for error handling.

ParserException BIP5005E: No valid body of the document could be found.
There should be one, and only one, top level element of type Element or EmptyElement and this is not the case for the current message.
Check that the XML message being passed in is a well formed XML message that adheres to the XML specification and that only one of the above exists as a child of the root.

As always your help is greatly appreciated.

Eric
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Thu Oct 11, 2012 12:41 pm    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Your message is unclear as to the sequence of nodes. Please post your flow node order. HTTP Reply?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Thu Oct 11, 2012 12:42 pm    Post subject: Re: ParserException BIP5005E: No valid body of document fou Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

EricCox wrote:
What are the common causes for this error.


Frankly, the one in the message text.

EricCox wrote:
ParserException BIP5005E: No valid body of the document could be found.
There should be one, and only one, top level element of type Element or EmptyElement and this is not the case for the current message.
Check that the XML message being passed in is a well formed XML message that adheres to the XML specification and that only one of the above exists as a child of the root.


The output node has either found nothing it can believe in as an XML root tag, or it's found more than 1 thing it believes can be an XML root tag.

Put in a Trace node, take a user trace, see what's actually in the message tree when it hits the node & go from there.

If I had to guess, I'd guess that some of the XML message is under 1 tag and some under another, e.g. the SOAP header has been given it's own XMLNSC domain. If not that, I'd guess that the XML message is not the last thing in the tree and another segment follows it.

If not that, I'd say, "Really?" and not be surprised at all that both of my guesses were wrong.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
EricCox
PostPosted: Thu Oct 11, 2012 12:46 pm    Post subject: Trace After Compute Node in Subflow Reply with quote

Master

Joined: 08 Apr 2011
Posts: 292

( ['MQROOT' : 0x615878128]
(0x01000000):Destination = (
(0x01000000):HTTP = (
(0x03000000):RequestIdentifier = X'414d5120514d424b5244303120202020402d44502114b89c' (BLOB)
)
)
)

( ['MQROOT' : 0x568155640]
(0x01000000):Properties = ( ['MQPROPERTYPARSER' : 0x616456232]
(0x03000000):MessageSet = 'MFNEEVO002001' (CHARACTER)
(0x03000000):MessageType = 'AllTelAbend' (CHARACTER)
(0x03000000):MessageFormat = 'XML' (CHARACTER)
(0x03000000):Encoding = 546 (INTEGER)
(0x03000000):CodedCharSetId = 1208 (INTEGER)
(0x03000000):Transactional = TRUE (BOOLEAN)
(0x03000000):Persistence = FALSE (BOOLEAN)
(0x03000000):CreationTime = GMTTIMESTAMP '2012-10-11 20:40:26.970' (GMTTIMESTAMP)
(0x03000000):ExpirationTime = GMTTIMESTAMP '2012-10-11 20:40:41.723' (GMTTIMESTAMP)
(0x03000000):Priority = 0 (INTEGER)
(0x03000000):ReplyIdentifier = X'414d5120514d424b5244303120202020402d44502114b89c' (BLOB)
(0x03000000):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000):Topic = NULL
(0x03000000):ContentType = '' (CHARACTER)
)
(0x01000010):XMLNS = ( ['xmlns' : 0x149758224]
(0x05000018): = (
(0x02000000): = '' (CHARACTER)
(0x06000011): = '1.0' (CHARACTER)
(0x06000012): = 'UTF-8' (CHARACTER)
)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x07000012)xmlns:SOAP-ENV = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x07000012)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance' (CHARACTER)
(0x07000012)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema' (CHARACTER)
(0x01000000)http://schemas.xmlsoap.org/soap/envelope/:Header = (
(0x07000012)xmlns:cfg_hdr = 'http://www.citizensbank.com/schemas/CFX/' (CHARACTER)
(0x01000000)http://www.co.com/schemas/CFX/:MessageHeader = (
(0x01000000)http://www.co.com/schemas/CFX/:ErrorList = (
(0x01000000)http://www.co.com/schemas/CFX/:Status = (
(0x02000000): = '2' (CHARACTER)
)
)
)
)
)
(0x01000000):soap_env:Envelope = (
(0x01000000):soap_env:Header = (
(0x01000000):cfg_hdr:MessageHeader = (
(0x01000000):cfg_hdr:ErrorList = (
(0x01000000):cfg_hdr:Error = (
(0x01000000):cfg_hdr:Context = (
(0x02000000): = 'serviceDelivery@alltel.com' (CHARACTER)
)
(0x01000000):cfg_hdr:SeverityCode = (
(0x02000000): = 'A' (CHARACTER)
)
(0x01000000):cfg_hdr:Severity = (
(0x02000000): = 'Abend' (CHARACTER)
)
(0x01000000):cfg_hdr:Code = (
(0x02000000): = ' YA88' (CHARACTER)
)
(0x01000000):cfg_hdr:Desc = (
(0x02000000): = ' YA88 ITR/TTR NOT FOUND OR INVALID' (CHARACTER)
)
)
)
(0x01000000):cfg_hdr:Service = (
(0x01000000):cfg_hdr:ServiceName = (
(0x02000000): = 'getCustConsLoanLoanAcctsRq' (CHARACTER)
)
(0x01000000):cfg_hdr:MessageType = (
(0x02000000): = 'Response' (CHARACTER)
)
)
(0x01000000):cfg_hdr:From = (
(0x01000000):cfg_hdr:PartyId = (
(0x02000000): = '06-530-9544' (CHARACTER)
)
(0x01000000):cfg_hdr:CostCenter = (
(0x02000000): = 'Unknown' (CHARACTER)
)
(0x01000000):cfg_hdr:System = (
(0x01000000):cfg_hdr:Application = (
(0x02000000): = 'serviceDelivery@alltel.com' (CHARACTER)
)
(0x01000000):cfg_hdr:Version = (
(0x02000000): = 'V1R0M0' (CHARACTER)
)
)
)
(0x01000000):cfg_hdr:UserSession = (
(0x01000000):cfg_hdr:SignonRole = (
(0x02000000): = 'Unknown' (CHARACTER)
)
(0x01000000):cfg_hdr:LogonId = (
(0x02000000): = 'N016438' (CHARACTER)
)
(0x01000000):cfg_hdr:SessionId = (
(0x02000000): = '00010000' (CHARACTER)
)
(0x01000000):cfg_hdr:CustId = (
(0x01000000):cfg_hdr:SPName = (
(0x02000000): = 'co.com' (CHARACTER)
)
(0x01000000):cfg_hdr:CustPermId = (
(0x02000000): = 'Loan Accounts' (CHARACTER)
)
(0x01000000):cfg_hdr:CustLogonId = (
(0x02000000): = 'N00000' (CHARACTER)
)
)
)
(0x01000000):cfg_hdr:Performance = (
(0x01000000):cfg_hdr:RqStartTime = (
(0x02000000): = '2012091812-25-59.001' (CHARACTER)
)
(0x01000000):cfg_hdr:PerfData = (
(0x01000000):cfg_hdr:SvcPvd = (
(0x01000000):cfg_hdr:Context = (
(0x02000000): = 'serviceDelivery@alltel.com' (CHARACTER)
)
(0x01000000):cfg_hdr:ServiceName = (
(0x02000000): = 'getCustConsLoanLoanAcctsRq' (CHARACTER)
)
(0x01000000):cfg_hdr:ElapsedTime = (
(0x02000000): = 8 (INTEGER)
)
)
(0x01000000):cfg_hdr:SvcPvd = (
(0x01000000):cfg_hdr:Context = (
(0x02000000): = 'messagebroker@citizensbank.com' (CHARACTER)
)
(0x01000000):cfg_hdr:ServiceName = (
(0x02000000): = 'getCustConsLoanLoanAcctsRq' (CHARACTER)
)
(0x01000000):cfg_hdr:BrkRqStartTime = (
(0x02000000): = 340144826645.000 (DECIMAL)
)
(0x01000000):cfg_hdr:BrkRqEndTime = (
(0x02000000): = 340144826646.000 (DECIMAL)
)
(0x01000000):cfg_hdr:BrkRqElapsedTime = (
(0x02000000): = 1000 (INTEGER)
)
(0x01000000):cfg_hdr:BrkRsEndTime = (
(0x02000000): = '340144826.926' (CHARACTER)
)
)
)
)
)
)
)
)
)
Back to top
View user's profile Send private message
EricCox
PostPosted: Thu Oct 11, 2012 12:51 pm    Post subject: Flow of Nodes Reply with quote

Master

Joined: 08 Apr 2011
Posts: 292

Here is the flow:

MQInput>>>RouteToLabel>>>Label>>>Subflow>>>Trace>>>HTTPReply

This trace never picks anything up...not sure why.

Subflow
Input>>>ResetContentDescriptor>>>Compute>>>Trace>>>Output

The trace shown is from this trace node in the subflow.

The subflow is getting values from the COBOL message set, is laying down the ESQL into SOAP output. I used SOAP XML Declarations exactly as I have working in another Label off of the RouteToLabel above.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Oct 11, 2012 3:44 pm    Post subject: Reply with quote

Grand High Poobah

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

Looks like you have a SOAP:Envelope and a SOAP:Header but no SOAP:Body.

Also it looks like you might be trying to propagate as SOAP:Fault....
Make sure your httpReply code is 500.... and not 200

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
NealM
PostPosted: Thu Oct 11, 2012 9:35 pm    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

Eric, remind me. Are you the person who is working on a Broker that is so downlevel that your Toolkit doesn't have a WebServices container with a SOAPEnvelope Node in it?
Geez, I gave you the ESQL code to properly build a SOAP envelope and body back on Sept 13 in your prior Cannot Retrieve HTTPRequestIdentifier topic . Go recheck that; It looks like you added extraneous junk.
http://www.mqseries.net/phpBB2/viewtopic.php?t=62174&postdays=0&postorder=asc&start=15
Back to top
View user's profile Send private message
smdavies99
PostPosted: Fri Oct 12, 2012 12:31 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

Quote:

Are you the person who is working on a Broker that is so downlevel that your Toolkit doesn't have a WebServices container with a SOAPEnvelope Node in it?


sometimes the only way to make a 'SOAP' message work is to use an HTTP Node.
I have just that situation here. The bit of kit I'm talking to says it uses a webservice interface. The sad thing is that the devs of said kit have never heard of things like
WSDL
xsd validators

So I'm left with sending a message over HTTP that uses a soap container but isn't a SOAP message as the rest of us know it.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
NealM
PostPosted: Fri Oct 12, 2012 4:41 am    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

smdavies, you do know that you can use the SOAPExtract and SOAPEnvelope Nodes with your HTTPInput and HTTPReply (and Request) Nodes to take care of removing/creating the SOAP envelope don't you? (that was their original purpose back when they were just ain a support pac, old ia9o) Then All you need to deal with in your ESQL is the body. See the same ref as above but go to my comments on page 1
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Fri Oct 12, 2012 5:07 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

smdavies99 wrote:
sometimes the only way to make a 'SOAP' message work is to use an HTTP Node. I have just that situation here....So I'm left with sending a message over HTTP that uses a soap container but isn't a SOAP message as the rest of us know it.


I cannot imagine this. I've not encountered any SOAP constructs that cannot be sent using the SOAP nodes in Broker.

Perhaps your not using the nodes correctly?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Fri Oct 12, 2012 5:25 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I think both nealm and lancelotlinc have missed the single quotes that smdavies99 put around 'SOAP'.

To paraphrase, 'It's SOAP, Jim, but not as we know it'.

That is, I believe that smadavies99 is saying that his developers have decided that sending XML over HTTP counts as using SOAP, as long as some random element in the XML document is named 'envelope', and that any closer resemblance to the official SOAP standards is purely coincidental.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Fri Oct 12, 2012 5:33 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Ok, I could see that happening. mgk and other IBM developers have done an outstanding job with the SOAP nodes. When the SOAP nodes are used as designed, they work flawlessly. This implies that the SOAP constructs are compliant. If you use random XML stanzas rather than compliant SOAP constructs, all bets are off, and no wonder it doesn't work.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
EricCox
PostPosted: Fri Oct 12, 2012 6:35 am    Post subject: Back Version - Yes Reply with quote

Master

Joined: 08 Apr 2011
Posts: 292

Yes,

I am the one you assisted with building a soap message manually. Unfortunately we are on Message Broker 6.0.0.9 and do not have access to the SOAP Nodes and Web Service toolkit folder.

You are correct that there is no SOAP Body. I can try adding that. Doe MB 6.0.0.9 check for a completely valid SOAP Body in the message even though that version of MB has no SOAP awareness?

In the other flow that you helped me with I am building a valid SOAP Compliant message with fully qualified envelope/header/body and namespace qualified header elements and declarations in the envelope/header/body.

Let me try to add a Body element in the output and see if that works.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Oct 12, 2012 6:39 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

I would suggest you use SOAPUI or some other standalone SOAP compliant tool to create a sample message. Then send this to an HTTPInput node deployed in your Broker using the XMLNSC parser. Then pass the logical message tree to a Trace node.

This should give you enough information on what a correct soap message tree needs to look like in Broker v6.

Then you should complain to your boss about how much harassment and humiliation you are having to put up with here on mqseries.net, and explain that if you were using a supported version of Broker, you would be able to ask IBM for official support, and receive proper customer service rather than lip service from cranky random strangers on the internet.
Back to top
View user's profile Send private message
NealM
PostPosted: Fri Oct 12, 2012 6:47 am    Post subject: Reply with quote

Master

Joined: 22 Feb 2011
Posts: 230
Location: NC or Utah (depends)

Quote:
If you use random XML stanzas rather than compliant SOAP constructs, all bets are off, and no wonder it doesn't work.

Random schmandom! Don't forget that the HTTP Nodes predate the SOAP Nodes by several WMB versions/releases, and we were doing valid webservices with SOAP structures waaaay back in Broker 5. There may be several reasons to continue doing so pre-MB8, such as the possible need to spread instances of a very busy flow across more than one EG without adding a load balancing sprayer someplace.
Quote:
You are correct that there is no SOAP Body. I can try adding that. Doe MB 6.0.0.9 check for a completely valid SOAP Body in the message even though that version of MB has no SOAP awareness?

Look, your Trace Node output says you have a mess in Root. Stick a Trace at the same point in your other working flow and compare. Then compare your ESQL.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » ParserException BIP5005E: No valid body of document found
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.