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 » HTTPInput node converts ' back to ' (WMB 6.1.0.5)

Post new topic  Reply to topic
 HTTPInput node converts ' back to ' (WMB 6.1.0.5) « View previous topic :: View next topic » 
Author Message
benners_2k
PostPosted: Fri Jun 25, 2010 5:37 am    Post subject: HTTPInput node converts ' back to ' (WMB 6.1.0.5) Reply with quote

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&apos;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
View user's profile Send private message
mqjeff
PostPosted: Fri Jun 25, 2010 6:05 am    Post subject: Reply with quote

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
View user's profile Send private message
benners_2k
PostPosted: Fri Jun 25, 2010 6:32 am    Post subject: Reply with quote

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&apos;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
View user's profile Send private message
smdavies99
PostPosted: Fri Jun 25, 2010 12:12 pm    Post subject: Reply with quote

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
View user's profile Send private message
fatherjack
PostPosted: Fri Jun 25, 2010 3:11 pm    Post subject: Reply with quote

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
View user's profile Send private message
benners_2k
PostPosted: Mon Jun 28, 2010 2:09 am    Post subject: Reply with quote

Newbie

Joined: 25 May 2010
Posts: 3

I am not sure which "Father Jack" you are.

system works fine when sent &apos; but crashes when apostrophe is being used.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » HTTPInput node converts &apos; back to ' (WMB 6.1.0.5)
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.