Author |
Message
|
mike_mq |
Posted: Tue Aug 11, 2009 8:13 am Post subject: HTTPRequest - BLOB / UnknownParserName - Calling webservice. |
|
|
Centurion
Joined: 17 Oct 2003 Posts: 123
|
Hello All,
I am having trouble with my webservice call from message flow. I am using HTTPRequest Node to call webservice. My flow is : MQInputNode --> Compute Node ---> Trace --> HttpRequest --> Trace --> Compute1 --> MQOutput Node
I am not building message using compute node. I am loading correct Message format to MQInputNode using enqueue file. There is not much code in my compute node (my intention was to make sure webservice works. Once I achieve this, I can work on building message using my compute node. I am not using message set here).
Message Domain value for MQInput Node and HTTPRequest Node are set to XMLNS.
These are the only custom lines in my Compute Node
Code: |
--CALL CopyMessageHeaders();
--CALL CopyEntireMessage();
SET OutputRoot = InputRoot;
SET Environment.MQMD = InputRoot.MQMD;
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'text/xml; charset=utf-8'; |
Issue I am having is, after HttpRequest Node, I am getting BLOB , UnknownParserName errors.
After converting BLOB to string, I am seeing this
Quote: |
?<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Server did not recognize the value of HTTP Header SOAPAction: .</faultstring><detail /></soap:Fault></soap:Body></soap:Envelope> |
Failure Trace Log says:
(0x01000000):HTTPRequestHeader = (
(0x03000000):Content-Length = '41'
(0x03000000):Content-Type = 'text/xml; charset=utf-8'
(0x03000000):Host = 'bsgwebsvc.dev.wachovia.net'
(0x03000000):SOAPAction = '""'
)
(0x01000000):HTTPResponseHeader = (
(0x03000000):X-Original-HTTP-Status-Line = 'HTTP/1.1 500 Internal Server Error'
(0x03000000):X-Original-HTTP-Status-Code = 500
(0x03000000):Connection = 'close'
(0x03000000):Date = 'Tue, 11 Aug 2009 15:55:27 GMT'
(0x03000000):Server = 'Microsoft-IIS/6.0'
(0x03000000):X-Powered-By = 'ASP.NET'
(0x03000000):X-AspNet-Version = '2.0.50727'
(0x03000000):Cache-Control = 'private'
(0x03000000):Content-Type = 'text/xml; charset=utf-8'
(0x03000000):Content-Length = '405'
Not sure, where I am doing mistake whether in my esql, message domain values or . Can anybody help me to fix this problem.
Thank you,
Mike |
|
Back to top |
|
 |
adrao45 |
Posted: Tue Aug 11, 2009 1:57 pm Post subject: |
|
|
Novice
Joined: 29 Nov 2004 Posts: 12
|
I think problem causing the below code.
Code: |
SET OutputRoot.HTTPRequestHeader."Content-Type" = 'text/xml; charset=utf-8'; |
So can you replace it with the following code and try..
Code: |
SET OutputRoot.Properties.CodedCharSetId=1208; |
|
|
Back to top |
|
 |
mgk |
Posted: Wed Aug 12, 2009 1:02 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Actually the error message from the server seems to be very clear
Quote: |
"Server did not recognize the value of HTTP Header SOAPAction" |
. You should set the SOAPAction to the value required by the server in your compute node:
Code: |
SET OutputRoot.HTTPRequestHeader.SOAPAction = "myAction"; |
Regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
j.f.sorge |
Posted: Fri Oct 02, 2009 1:09 am Post subject: problem when copiing the message headers |
|
|
Master
Joined: 27 Feb 2008 Posts: 218
|
I have quite the same problem with ContentType here. A HTTP message gets into the flow and an error occurs. After that the error handling tries to create a fault message (which works perfectly in WMB 6.0) which needs the original headers to be copied by
Code: |
CALL CopyMessageHeaders(); |
. This copy command fails with a conversion error as it cannot convert a CHARACTER into INTEGER. Removing the value of ContentType in Properties and *Header folder lets me copy the headers.
Any solution there?
Thanks in advance! _________________ IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
nheng |
Posted: Fri Oct 02, 2009 1:36 am Post subject: answer |
|
|
 Apprentice
Joined: 07 Dec 2007 Posts: 39
|
Please check Response message parsing of HTTP request node.It must be BLOB only. |
|
Back to top |
|
 |
j.f.sorge |
Posted: Fri Oct 02, 2009 1:56 am Post subject: Re: answer |
|
|
Master
Joined: 27 Feb 2008 Posts: 218
|
nheng wrote: |
Please check Response message parsing of HTTP request node.It must be BLOB only. |
I'm calling the WebService by using Java API directly and the flow which provides the service fails when copiing the message headers. _________________ IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
nheng |
Posted: Fri Oct 02, 2009 3:16 am Post subject: answer |
|
|
 Apprentice
Joined: 07 Dec 2007 Posts: 39
|
j.f.sorge wrote: |
nheng wrote: |
Please check Response message parsing of HTTP request node.It must be BLOB only. |
I'm calling the WebService by using Java API directly and the flow which provides the service fails when copiing the message headers. |
Follow you command.Your web service return response message that's BLOB.But you set "Response message parsing".
Plz try follow like this
1) Reset "Response message parsing" -> Blob
2) Adding ResetContentDescriptor Node after HttpRequest Node,And then set "Message domain" be XML and checked "reset message domain".
Hope it work. |
|
Back to top |
|
 |
j.f.sorge |
Posted: Fri Oct 02, 2009 4:07 am Post subject: Re: answer |
|
|
Master
Joined: 27 Feb 2008 Posts: 218
|
nheng wrote: |
j.f.sorge wrote: |
nheng wrote: |
Please check Response message parsing of HTTP request node.It must be BLOB only. |
I'm calling the WebService by using Java API directly and the flow which provides the service fails when copiing the message headers. |
Follow you command.Your web service return response message that's BLOB.But you set "Response message parsing".
Plz try follow like this
1) Reset "Response message parsing" -> Blob
2) Adding ResetContentDescriptor Node after HttpRequest Node,And then set "Message domain" be XML and checked "reset message domain".
Hope it work. |
I'm very sorry, but as there is no HTTPRequestNode I cannot configure the response message parsing.
I tried to use the following code
Code: |
SET OutputRoot.Properties = InputProperties |
, too but it still does not work. _________________ IBM Certified Solution Designer - WebSphere MQ V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.0
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
|