| 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: 1647
  
  | 
		  
		    
			  
				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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |