Dear all,
I am working with a synchronous HTTP <-> PI <-> RFC on PI 7.3.
In the scenario I am using the validation by adapter option.
When I am using the HTTP adapter and classic configuration, in case of invalid payload being sent I am receiving back a clear error from the parser:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> - <Error>- <Details>- <![CDATA[ <SAP:Error><SAP:Category>XIServer</SAP:Category><SAP:Code>XML_VALIDATION_INB.CX_XMS_SYSERR_VALIDATION</SAP:Code><SAP:P1>com.sap.aii.utilxi.xmlvalidation.impl.XMLValidationException: XML Validation for payload with root element name message_root , target namespace http://www.root.net Failed!Errors Encountered During Parsing 1.cvc-enumeration-valid: Value 'fufu' is not facet-valid with respect to enumeration '[TECL, STRD]'. It must be a value from the enumeration.2.cvc-type.3.1.3: The value 'fufu' of element 'RapidPriority' is not valid.</SAP:P1><SAP:P2>XML Validation for payload with root element name message_root , target namespace http://www.root.net Failed!Errors Encountered During Parsing 1.cvc-enumeration-valid: Value 'fufu' is not facet-valid with respect to enumeration '[TECL, STRD]'. It must be a value from the enumeration.2.cvc-type.3.1.3: The value 'fufu' of element 'RapidPriority' is not valid.</SAP:P2><SAP:P3>Schema Not Available in Cache, try to validation with file system schemas. Validation With File System schemas also Failed. XML Validation for payload with root element name message_root , target namespace http://www.root.net Failed!Errors Encountered During Parsing 1.cvc-enumeration-valid: Value 'fufu' is not facet-valid with respect to enumeration '[TECL, STRD]'. It must be a value from the enumeration.2.cvc-type.3.1.3: The value 'fufu' of element 'RapidPriority' is not valid.</SAP:P3><SAP:AdditionalText>not used at the moment.</SAP:AdditionalText><SAP:Stack>System error occurred during XML validation</SAP:Stack></SAP:Error> ]]> </Details> </Error>
After changing the scenario to integrated configuration using the HTTP AAE adapter, I am receiving a response to the same error in such a way:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> - <Error>- <Details>- <![CDATA[ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head> <title>Error Report</title> <style> td {font-family : Arial, Tahoma, Helvetica, sans-serif; font-size : 14px;} A:link {color : #0059AA;} A:visited {color : #999999;} A:active {color : #999999;} </style></head><body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0"> <table width="100%" cellspacing="0" cellpadding="0" border="0" align="left" height="75"> <tr bgcolor="#FFFFFF"> <td align="left" colspan="2" height="48"><font face="Arial, Verdana, Helvetica" size="4" color="#666666"><b> 500 Internal Server Error</b></font></td> </tr> <tr bgcolor="#3F73A3"> <td height="23" width="84"><img width=1 height=1 border=0 alt=""></td> <td height="23"><img width=1 height=1 border=0 alt=""></td> <td align="right" height="23"><font face="Arial, Verdana, Helvetica" size="2" color="#FFFFFF"><b>SAP NetWeaver Application Server </b></font></td> </tr> <tr bgcolor="#9DCDFD"> <td height="4" colspan="3"><img width=1 height=1 border=0 alt=""></td> </tr> </table> <br><br><br><br><br><br> <p><font face="Arial, Verdana, Helvetica" size="3" color="#000000"><b> Error: ERROR_IN_MODULECHAIN;ERROR_IN_MODULECHAIN, senderChannel '2da99c2347883de1901ec9bd42dbf208': Catching exception calling messaging system</b></font></p> <p><font face="Arial, Verdana, Helvetica" size="2" color="#000000"><b> <a href="https://wiki.sdn.sap.com/wiki/x/wIN3Cw">SAP Technology Troubleshooting Guide</a></b></font></p> <p><font face="Arial, Verdana, Helvetica" size="2" color="#000000"><table> <tr> <td valign="top"><b> Details:</b></td> <td valign="top"><PRE>No details available.</PRE></td> </tr> </table></font></p></body></html> ]]> </Details> </Error>
As you can see after changing to HTTP AAE I am not receiving a clear parser error back. Instead a generic internal server error is being thrown.
This is a disadvantage for the Sender who does not know which part of his message was in error.
Maybe somebody can give me a hint how to get back the parser message on the HTTP AAE adapter instead of the generic message.