Question
HSBC
IN
Last activity: 19 Jan 2018 8:57 EST
Getting SAXParseException exception in logs when exeuting Parse XML rule
We are using PRPC 6.1SP2 .
Created a new Parse XML rule and tries to run by providing XML content to check whether it is getting parsed properly or not. We have observed when there is repeating column, it has been allowed only specified length if we increase the content we could see exception in logs as below
Observation: If we decrease the content then it is parsing properly.
sample format of XML for repeating :
<appbody:appdata xmlns:appbody="http:/ ">
<appbody:P xsi:type="xsd:string" name="conversationid">1742509522423U00</appbody:P>
<appbody:P xsi:type="xsd:string" name="bushdr"><![CDATA
[{1:F01HBUKGB4BAXXX0001000001}{2:I103MRMDUS33XXXXN}{3:{108:X3884W100NYK}{119:STP}}{4:
:20:RBD25047KAAJYDZ4
dsfdsfdsf43543545
]]></appbody:P>
<appbody:P xsi:type="xsd:string" name="hash">F01HB1</appbody:P>
</appbody:appdata>
om.pega.pegarules.pub.PRException: Caught exception parsing XML stream
From: (unknown)
at com.pega.pegarules.integration.engine.internal.mapping.XMLParserBase.parseDocument(XMLParserBase.java:512)
at com.pega.pegarules.integration.engine.internal.mapping.ParseRuleUtils.invokeXMLParseRule(ParseRuleUtils.java:250)
at com.pega.pegarules.integration.engine.internal.mapping.ParseRuleUtils.invokeXMLParseRule(ParseRuleUtils.java:212)
We are using PRPC 6.1SP2 .
Created a new Parse XML rule and tries to run by providing XML content to check whether it is getting parsed properly or not. We have observed when there is repeating column, it has been allowed only specified length if we increase the content we could see exception in logs as below
Observation: If we decrease the content then it is parsing properly.
sample format of XML for repeating :
<appbody:appdata xmlns:appbody="http:/ ">
<appbody:P xsi:type="xsd:string" name="conversationid">1742509522423U00</appbody:P>
<appbody:P xsi:type="xsd:string" name="bushdr"><![CDATA
[{1:F01HBUKGB4BAXXX0001000001}{2:I103MRMDUS33XXXXN}{3:{108:X3884W100NYK}{119:STP}}{4:
:20:RBD25047KAAJYDZ4
dsfdsfdsf43543545
]]></appbody:P>
<appbody:P xsi:type="xsd:string" name="hash">F01HB1</appbody:P>
</appbody:appdata>
om.pega.pegarules.pub.PRException: Caught exception parsing XML stream
From: (unknown)
at com.pega.pegarules.integration.engine.internal.mapping.XMLParserBase.parseDocument(XMLParserBase.java:512)
at com.pega.pegarules.integration.engine.internal.mapping.ParseRuleUtils.invokeXMLParseRule(ParseRuleUtils.java:250)
at com.pega.pegarules.integration.engine.internal.mapping.ParseRuleUtils.invokeXMLParseRule(ParseRuleUtils.java:212)
Caused by:
org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at com.pega.pegarules.integration.engine.internal.mapping.XMLParserBase.parseDocument(XMLParserBase.java:507)
... 62 more
Hi Harathi,
Thanks for posting on PSC.
To isolate the root cause, could you verify:
- Is there any escape characters('&') in your service request SML? You need to pre-process it before sending to Pega SOAP Service.
- Check the structure of your XSD and request mapping, if there is any ill-format? Please use the tracer to observe, what is available to the parse rule for processing.
- Unit test your activity to verify that you're getting correct XML from your connect rule?
Hope it helps you in isolating the root cause. Kindly notify if it does.
Regards,
Asif