Author |
Message
|
benners_2k |
Posted: Fri Jun 25, 2010 5:37 am Post subject: HTTPInput node converts ' back to ' (WMB 6.1.0.5) |
|
|
Newbie
Joined: 25 May 2010 Posts: 3
|
Hi there,
I am a WMB beginner and have been presented with a large number of interfaces to support and try to understand. One of the problems we are having is with an interface that has a HTTPInput node that receives web service calls and passes them on to a different webservice.
The problem is the HTTPInput node seems to be converting the XML entity characters back to standard characters and this then causes an XML error when the message is sent off to the second webservice. Is there a way to stop this from happening?
e.g we send <surname>O'Reilly</surname> and the node seems to convert it to <surname>O'Reilly</surname> and then fails at the next HTTPRequest node with "'Line 1: Incorrect syntax near 'Reilly'.
Unclosed quotation mark before the character string ''.
I just want the HTTPInput node to leave the message as XML. It has the XMLNSC parser set on it so I don't know what it's problem is.
I can fix the problem with a replace statement in a processing node after the input node but don't want to have to do this for every single message type that comes in.
I will post some trace information in a minute.
Any help would be much appreciated |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Jun 25, 2010 6:05 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The XMLNSC parser is supposed to convert the &apos into a ' when it parses the XML document into the message tree
It's *also* supposed to convert the ' to an &apos when it serializes the message into an XML document.
I don't see any specific fixes mentioned that are included in 6.1.0.6 and 6.1.0.7 (6.1.0.7 replaced 6.1.0.6, there was a packaging error...)
But it's worth testing against anyway.
And it's worth taking a user trace at debug level and seeing if it's an issue with how you have transformed the data - perhaps you've changed the field type of the element somehow. If nothing else, you'll need that if you have to open a PMR. |
|
Back to top |
|
 |
benners_2k |
Posted: Fri Jun 25, 2010 6:32 am Post subject: |
|
|
Newbie
Joined: 25 May 2010 Posts: 3
|
thanks for the quick response. I will install the latest fix pack and see if that makes a difference.
here is the standard trace for the message but i am still working on the full trace as it has so much other stuff in it that confuses the problem a bit
Code: |
Input Message
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:aqu="http://aquadefaultnamespace.org/">
<soapenv:Header/>
<soapenv:Body>
<aqu:GetDuplicateLearners>
<!--Optional:-->
<aqu:surname>O'Blimey</aqu:surname>
<!--Optional:-->
<aqu:firstName>Paul</aqu:firstName>
<!--Optional:-->
<aqu:postcode></aqu:postcode>
<aqu:parkey>24</aqu:parkey>
<aqu:eyecatcher>3</aqu:eyecatcher>
</aqu:GetDuplicateLearners>
</soapenv:Body>
</soapenv:Envelope>
Broker Log
Trace Nodes
Broker HTTP Trace Input - 2010-06-25, 09:57:05.547993
URL = NULL
( ['WSRoot' : 0x115398630]
(0x01000000:Name ):Properties = ( ['WSPROPERTYPARSER' : 0x115406a70]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 1208 (INTEGER)
(0x03000000:NameValue):Transactional = FALSE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2010-06-25 09:57:05.547122' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'SOAP-HTTP' (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' : 0x11540a490]
(0x03000000:NameValue):X-Original-HTTP-Command = 'POST http://10.*.*.*:17080/AQUA/CourseFinderWebService.asmx HTTP/1.1' (CHARACTER)
(0x03000000:NameValue):Accept-Encoding = 'gzip,deflate' (CHARACTER)
(0x03000000:NameValue):Content-Type = 'text/xml;charset=UTF-8' (CHARACTER)
(0x03000000:NameValue):SOAPAction = '"http://aquadefaultnamespace.org/GetDuplicateLearners"' (CHARACTER)
(0x03000000:NameValue):User-Agent = 'Jakarta Commons-HttpClient/3.1' (CHARACTER)
(0x03000000:NameValue):Host = '10.*.*.*:17080' (CHARACTER)
(0x03000000:NameValue):Content-Length = '552' (CHARACTER)
(0x03000000:NameValue):X-Remote-Addr = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Remote-Host = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Server-Name = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Server-Port = '17080' (CHARACTER)
(0x03000000:NameValue):X-Scheme = 'http' (CHARACTER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x11540d7d0]
(0x01000000:Folder)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x03000102:NamespaceDecl)http://www.w3.org/2000/xmlns/:soapenv = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x03000102:NamespaceDecl)http://www.w3.org/2000/xmlns/:aqu = 'http://aquadefaultnamespace.org/' (CHARACTER)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Header =
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000:Folder)http://aquadefaultnamespace.org/:GetDuplicateLearners = (
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:surname = 'O'Blimey' (CHARACTER)
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:firstName = 'Paul' (CHARACTER)
(0x01000000:Folder )http://aquadefaultnamespace.org/:postcode =
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:parkey = '24' (CHARACTER)
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:eyecatcher = '3' (CHARACTER)
)
)
)
)
)
Broker HTTP Trace Input - 2010-06-25, 09:57:05.598657
URL = 'http://193.*.*.*:80/CourseFinderWebService/CourseFinderWebService.asmx'
( ['WSRoot' : 0x1124357d0]
(0x01000000:Name ):Properties = ( ['WSPROPERTYPARSER' : 0x115276fd0]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 273 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 1208 (INTEGER)
(0x03000000:NameValue):Transactional = FALSE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2010-06-25 09:57:05.547122' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'SOAP-HTTP' (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' : 0x112d76810]
(0x03000000:NameValue):X-Original-HTTP-Command = 'POST http://10.*.*.*:17080/AQUA/CourseFinderWebService.asmx HTTP/1.1' (CHARACTER)
(0x03000000:NameValue):Accept-Encoding = 'gzip,deflate' (CHARACTER)
(0x03000000:NameValue):Content-Type = 'text/xml;charset=UTF-8' (CHARACTER)
(0x03000000:NameValue):SOAPAction = '"http://aquadefaultnamespace.org/GetDuplicateLearners"' (CHARACTER)
(0x03000000:NameValue):User-Agent = 'Jakarta Commons-HttpClient/3.1' (CHARACTER)
(0x03000000:NameValue):Host = '10.*.*.*:17080' (CHARACTER)
(0x03000000:NameValue):Content-Length = '552' (CHARACTER)
(0x03000000:NameValue):X-Remote-Addr = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Remote-Host = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Server-Name = '10.*.*.*' (CHARACTER)
(0x03000000:NameValue):X-Server-Port = '17080' (CHARACTER)
(0x03000000:NameValue):X-Scheme = 'http' (CHARACTER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x112f80fd0]
(0x01000000:Folder)http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x03000102:NamespaceDecl)http://www.w3.org/2000/xmlns/:soapenv = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x03000102:NamespaceDecl)http://www.w3.org/2000/xmlns/:aqu = 'http://aquadefaultnamespace.org/' (CHARACTER)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Header =
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000:Folder)http://aquadefaultnamespace.org/:GetDuplicateLearners = (
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:surname = 'O'Blimey' (CHARACTER)
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:firstName = 'Paul' (CHARACTER)
(0x01000000:Folder )http://aquadefaultnamespace.org/:postcode =
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:parkey = '24' (CHARACTER)
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:eyecatcher = '3' (CHARACTER)
)
)
)
)
)
Broker HTTP Trace Output - 2010-06-25, 09:57:09.400206
Response = NULL
( ['WSRoot' : 0x110451030]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x11526f4b0]
(0x03000000:NameValue):MessageSet = NULL
(0x03000000:NameValue):MessageType = NULL
(0x03000000:NameValue):MessageFormat = NULL
(0x03000000:NameValue):Encoding = NULL
(0x03000000:NameValue):CodedCharSetId = NULL
(0x03000000:NameValue):Transactional = NULL
(0x03000000:NameValue):Persistence = NULL
(0x03000000:NameValue):CreationTime = NULL
(0x03000000:NameValue):ExpirationTime = NULL
(0x03000000:NameValue):Priority = NULL
(0x03000000:NameValue):ReplyIdentifier = NULL
(0x03000000:NameValue):ReplyProtocol = 'SOAP-HTTP' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = NULL
(0x03000000:NameValue):IdentitySourceType = NULL
(0x03000000:NameValue):IdentitySourceToken = NULL
(0x03000000:NameValue):IdentitySourcePassword = NULL
(0x03000000:NameValue):IdentitySourceIssuedBy = NULL
(0x03000000:NameValue):IdentityMappedType = NULL
(0x03000000:NameValue):IdentityMappedToken = NULL
(0x03000000:NameValue):IdentityMappedPassword = NULL
(0x03000000:NameValue):IdentityMappedIssuedBy = NULL
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x112f80fd0]
(0x01000400:NamespaceDecl):XML = (
(0x03000100:Attribute):Version = '1.0' (CHARACTER)
(0x03000100:Attribute):Encoding = 'utf-8' (CHARACTER)
)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Envelope = (
(0x03000102:NamespaceDecl)xmlns:soap = 'http://schemas.xmlsoap.org/soap/envelope/' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema' (CHARACTER)
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Header =
(0x01000000:Folder )http://schemas.xmlsoap.org/soap/envelope/:Body = (
(0x01000000:Folder)http://aquadefaultnamespace.org/:Fault = (
(0x03000102:NamespaceDecl)xmlns:swo = 'http://aquadefaultnamespace.org/' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:xsi = 'http://www.w3.org/2001/XMLSchema-instance' (CHARACTER)
(0x03000102:NamespaceDecl)xmlns:xsd = 'http://www.w3.org/2001/XMLSchema' (CHARACTER)
(0x03000000:PCDataField )http://aquadefaultnamespace.org/:faultcode = 'ERR:200225' (CHARACTER)
(0x03000000:PCDataField )http://aquadefaultnamespace.org/:faultstring = 'Unexpected Response Received' (CHARACTER)
(0x03000000:PCDataField )http://aquadefaultnamespace.org/:faultactor = 'AE_Control.AQUA_Proxy_Webservice' (CHARACTER)
(0x01000000:Folder )http://aquadefaultnamespace.org/:detail = (
(0x03000000:PCDataField)http://aquadefaultnamespace.org/:text = 'Line 1: Incorrect syntax near 'BLIMEY'.
Unclosed quotation mark before the character string ''.' (CHARACTER)
)
)
)
)
)
)
|
|
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jun 25, 2010 12:12 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
This is not the solution to your problem but I couldn't help noticing that your response message is possibly incorrect.
You are using the format ERR:nnnnnn in your response. This may well fall into the trap I have seen at one site.
http://www.w3.org/TR/soap12-part1/
ERR: is much like a namespace declaration. Section 7 of the above document shows something like this.
Some recipients of a soap fault may throw a wobbly with the ERR: format.
The site in question changed their error codes from ERR:nnnnn to ERR-nnnnn and then defined the soap-env namespace.
Someone much more SOAP literate than me could no doubt explain thie better than me. _________________ 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 |
|
 |
fatherjack |
Posted: Fri Jun 25, 2010 3:11 pm Post subject: |
|
|
 Knight
Joined: 14 Apr 2010 Posts: 522 Location: Craggy Island
|
From what I recall you should be able to access those AQUA Course Finder webservices (at least the test ones) directly from the AQUA web site, without going via MB. Do you get the same error or does that work OK? _________________ Never let the facts get in the way of a good theory. |
|
Back to top |
|
 |
benners_2k |
Posted: Mon Jun 28, 2010 2:09 am Post subject: |
|
|
Newbie
Joined: 25 May 2010 Posts: 3
|
I am not sure which "Father Jack" you are.
system works fine when sent ' but crashes when apostrophe is being used. |
|
Back to top |
|
 |
|