on 03-03-2011 10:49 AM
Hello,
We have a SOAP sync scenario.
SAP -> PI 7.0 -> 3rd Party system
We have a special character (ü - Umlaut) as part of the payload.
When the message enters message pipeline in PI, I can see the payload XML till message branching step.
From Message mapping step, i get the message - "The XML page cannot be displayed. An invalid character was found in text content" in SXMB_MONI.
In communication channel monitoring, I see the following error:
SOAP: error occured: com.sap.aii.af.ra.ms.api.RecoverableException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)(:main:, row=2, col=2106) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106): java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)(:main:, row=2, col=2106) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2106)
But, when I pass the same message(with special character) to the 3rd party system using SOAP UI, i get a valid response back.
So, what is going wrong in PI?
Thanks,
Chandra
I assume that the mapping will corrupt the XML payload.
What kind of mapping do you use?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Stefan,
I am using Java mapping. Even though I am not doing any data transformation in mapping, I had to use it as the target namespaces required are more than 60 characters in length, and PI 7.0 does not support that.
So, I am adding namespace tags as part of java mapping.
Example:
This is the Initial xml tag:
<TradeName>TEST</TradeName>
This is the xml tag after java mapping, according to our requirement:
<est2:TradeName xmlns:est2="http://xml.namespaces.abcde.com/im/xip/dsp/data/establishmentges/establishment">TEST</est2:TradeStyleName>
Thanks,
Chandra
Hi Stefan,
Without any special characters in the payload, my interface works, and i get a valid response back. It has been working for a while now. But for the first time it encountered this special character, it failed.
So, do you still say that it is java mapping issue?
If yes, can you please give me any pointer about what might be going wrong here?
Many Thanks,
Chandra
Please check whether paylaod is properly generated in ur mapping step....If yes...then olz use following module param in ur soap receiver comm channel to change the encoding before sending it to receiver :
Module Key - SOAP .
Parameter Name - XMBWS.XMLEncoding
Parameter Value - UTF-16(or any other encoding that you want to be used)
You need to check your usage regarding string encoding. E.g. when you read the input stream into a string, check which encoding you pass (if any) for that call. Make sure that encoding is the same as passed in the payload. Probably this is your problem, a common mistake. If you give the wrong encoding, the xml will not be valid anymore, as in your case obviously.
If you currently do not pass an encoding while you convert the stream into string, try to add an explicit encoding. Find out what the right input encoding is.
CSY
Hi Samiullha,
Could you please let me know the Module name?
Hi CHandra,
Could you please update how you fixed it. I am also facing similar issue.
Error is com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: Parsing Error: org.xml.sax.SAXParseException: Invalid byte 2 of 3-byte UTF-8 sequence.</
for æ ø å Æ Ø Å characture.
Module I have used is
1st module
1 | AF_Modules/MessageTransformBean | Local Enterprise Bean | 0 |
2 sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean local SOAP
Parameter Transform.ContentType and value text/xml
Hi,
Looking at your message, your message is succesfull in SXMB_MONI with warning message and the actual error is coming in Comm Channel while delivering the message to target. Please correct me if I am wrong.
Have you used any encoding in sender channel? Ideally, if the character is not supported by UTF-8 format, the message will not go till receiver communication channel. It shd fail before that.
-Gouri
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Gouri,
you are right. My message is successful in SXMB_MONI, and the error is coming from comm channel monitoring with deliverin to target.
My sender is a proxy, and we can not specify any encoding in proxy sender.
I did not specify any encoding in SOAP Receiver aswell.
This is the sequence in comm channel monitoring:
Success: Delivering to channel: CI_SOAP_Receiver_Sync
Success: MP: Entering module processor
Success: MP: Processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
Success: SOAP: request message entering the adapter with user J2EE_GUEST
Error: SOAP: call failed: java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)
Error SOAP: error occured: com.sap.aii.af.ra.ms.api.RecoverableException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046): java.io.IOException: Parsing Error: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)(:main:, row=2, col=2046) -> com.sap.engine.lib.xml.parser.ParserException: Unsupported character: 72(:main:, row:2, col:2046)
So, what can i do to fix this?
Thanks,
Chandra
Edited by: Chandra Sekhar H on Mar 3, 2011 12:25 PM
Its basically like UTF-8 encoding can not hadle the german character : ü - Umlaut
Can you try using "ISO-8859-1 " format...
For further info..read the following threads:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
84 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.