cancel
Showing results for 
Search instead for 
Did you mean: 

Error "Could not parse XMBMessage due to Can't parse the document"

Nancy
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi,

I'm getting a strange problem when calling PI webservices from a Java software. The error "Could not parse XMBMessage due to Can't parse the document" occurs only on one server.

If the same java code and same webservice is called on another server, it works fine.

I also made a jar file with the same code in the main method, and put it into the server with this error, it ‘s also ok .

Could some one provide any suggestions about what could be wrong with the server?

Here is the error details:

faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server

faultSubcode:

faultString: Server Error

faultActor:

faultNode:

faultDetail:

{http://sap.com/xi/WebService/xi2.0}SystemError:

<(><<)>context>XIAdapter<(><<)>/context>

<(><<)>code>ADAPTER.JAVA_EXCEPTION<(><<)>/code>

<(><<)>text><(><<)>![CDATA[

com.sap.engine.interfaces.messaging.api.exception.MessagingException:

com.sap.engine.interfaces.messaging.api.exception.MessagingException:

Could not parse XMBMessage due to Can't parse the document

at com.sap.aii.adapter.soap.web.SOAPHandler.processSOAPtoXMB

(SOAPHandler.java:747)

at com.sap.aii.adapter.soap.web.MessageServlet.doPost

(MessageServlet.java:530)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

Best regards,

Nancy

Accepted Solutions (0)

Answers (3)

Answers (3)

Nancy
Product and Topic Expert
Product and Topic Expert
0 Kudos

Issue resolved after regenerating the Java code.

pvishnuvardan_reddy
Active Contributor
0 Kudos

Hi Nancy,

Can you check if there is any structure deviation happening between the payload one and configured one in your PI system.

Also refer the below links which might help you in this regard.

http://service-notes.com/1994204.htm

Note 1606891:PI messages fail with parsing error on retry

Nancy
Product and Topic Expert
Product and Topic Expert
0 Kudos

I have gone through the links, but they don't help. We are on PI 7.40.

aby_jose
Explorer
0 Kudos

Hi Nancy,

Is it like you have developed a J2EE based web service client and trying to consume the PI web services?

Which service you are trying to consume? is it a directory API?

The error "Could not parse XMBMessage due to Can't parse the document" occurs only on one server.


Are you using the same protocol (http/https) for invoking the services on both systems?


Best Regards,

Aby

Nancy
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Aby,

PI web service entry is

http://host:port/dir/wsdl?p=sa/e07a84e1e4f5378086709f7ae917833f

String userName512 = "****";

String password512 = "*****";

Use soapUI to connect, will get the link

String url512 = "http://host:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BS_CATL_MES_Q&receiverParty=&receiverService=&interface=SI_TimeSheetCreateOut&interfaceNamespace=http://atlbattery.com/MES/Timesheet";

How to check which protocol is used? The coding is the same on both servers.

Best regards,
Nancy

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Nancy,


PI web service entry is

http://host:port/dir/wsdl?p=sa/e07a84e1e4f5378086709f7ae917833f

String userName512 = "****";

String password512 = "*****";

This is just the location of the wsdl. The actual call itself should be different.


Use soapUI to connect, will get the link

String url512 = "http://host:port/XISOAPAdapter/MessageServlet?senderParty=&senderService=BS_CATL_MES_Q&receiverParty=&receiverService=&interface=SI_TimeSheetCreateOut&interfaceNamespace=http://atlbattery.com/MES/Timesheet";

The message protocol is SOAP but the transport protocol is http Have you tried comparing HTTP headers between the SOAP UI call and your java software call?

Regards,

Mark

Nancy
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Mark,

But why the same code works on one server while gets error on the other server? I don't understand what could be different on the 2 servers.

Best regards,

Nancy

aby_jose
Explorer
0 Kudos

Hi Nancy,

So you are not consuming any of the official web service; Instead generated the wsdl from the ICO and trying to consume the scenario.

Can you try the below.

1) Execute the scenarios from wsnavigator in both systems and compare

2) Try from SOAP UI and the results for both systems

3) Compare the roles assigned to the users in both the systems  (might need Administrator role or SAP_JAVA_WSNAVIGATOR)

Also can you check the 'XML Validation' set up in both systems (in case if required in one server and not in the other one).

Best Regards,

Aby

markangelo_dihiansan
Active Contributor
0 Kudos

Hi Nancy,

That is strange, but still try checking the http headers of both servers and compare

Regards,

Mark