cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP->XI->SOAP(webservice) -> error in outbound mapping

Former Member
0 Kudos

Scenario is HTTP(request)->XI->SOAP(webservice) ->XI->HTTP(response)

2 messsage mappings for request and response (syncronous)

1 interface mapping

HTTP payload reaches XI from there it appears problem translating request data to webservice external URL "http://webservices.imacination.com/distance/Distance.jws".

Message mappings when tested with sample xml in intergration repository results in success. Meaning source populated data gets copied to target in IR testing (both for request and response).

Here is the log from SXMB_MONI

- - - - SystemError synchronous 034E60D2-1D22-6B44-B424-E7A4527B7375 54F73912-E6A9-A741-A815-1F623FC79293 2007-01-23T14:50:58Z - vservice4 mi_inb_ws - vservice4 mi_out mi_out - BestEffort - Application <b>EXCEPTION_DURING_EXECUTE</b> com/sap/xi/tf/_mm_ws_ java.lang.NullPointerException During the application mapping com/sap/xi/tf/_mm_ws_ a <b>java.lang.NullPointerException was thrown</b>: N - - HTTP

server-protocol HTTP/1.1 user-agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) host <xiapp>:8050 content-length 230 remote-addr 10.20.40.120 <b>COMMIT is expected by application</b> !

SAP_CENTRAL - - - - R E C E I V E R - D E T E R M I N A T I O N Cache Content is up to date - - - - I N T E R F A C E - D E T E R M I N A T I O N Cache Content is up to date - - - - number of receivers: 1 Single-receiver split case - - - - Interface Mapping urn:
vmyvendor.org\http2webservice im_ws RuntimeException during appliction Java mapping com/sap/xi/tf/_mm_ws_ java.lang.NullPointerException at com.sap.aii.mappingtool.tf3.AMappingProgram.exceptionCaught$(AMappingProgram.java:59)

Any pointers would be greatly appreciated. Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

More log from sxmb_moni:

SAP_CENTRAL CENTRAL 5EC3C53B4BB7B62DE10000000A1148F5

PLSRV_MAPPING_REQUEST A 0 0 0 CENTRAL 230 0 230 0 0 0 INI

PLAINHTTP INIT 16 000 - -

INTEGRATION_ENGINE 20070123145101.216 -

INTEGRATION_ENGINE 20070123145102.591 -

PLSRV_RECEIVER_DETERMINATION 20070123145102.763 -

PLSRV_RECEIVER_DETERMINATION 20070123145103.388 -

PLSRV_INTERFACE_DETERMINATION 20070123145103.388 -

PLSRV_INTERFACE_DETERMINATION 20070123145103.951 -

PLSRV_RECEIVER_MESSAGE_SPLIT 20070123145103.951 -

PLSRV_RECEIVER_MESSAGE_SPLIT 20070123145104.107 -

PLSRV_MAPPING_REQUEST 20070123145104.107 -

INTEGRATION_ENGINE 20070123145109.201 -

Information Off - - server-protocol

HTTP/1.1 user-agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

host <xiapp>:8050 content-length 230 remote-addr 10.20.40.120 COMMIT is expected by application

Let me know if you want entire SXMB_MONI log. I removed unwanted for the discussion.

-


I used message mapping (one-to-one) to map source to target. There is no java mapping. The java thick client (java web start) version is 1.4.2_13.

Is there a problem if I don't specify proxy details for accessing the URL-webservice? (while configuring communication channel)

Former Member
0 Kudos

SXMB_MONI->select the message->SOAP Header -> Trace

The interesting part is the Java Exception.

Regads,

Sandro

Former Member
0 Kudos

From XML request message->SOAP Header->Trace & using XML spy problem is in <b>CL_XMS_MAIN-CALL_PLSRV</b>. The log also talks about message persist processing, is it valid for sync webservice?

-


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Request Message Mapping

-->

- <SAP:Trace xmlns:SAP="http://sap.com/xi/XI/Message/30">

+ <Trace level="1" type="B" name="CL_HTTP_PLAIN_INBOUND">

<Trace level="1" type="T">server-protocol HTTP/1.1</Trace>

<Trace level="1" type="T">user-agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)</Trace>

<Trace level="1" type="T">host xiapp:8050</Trace>

<Trace level="1" type="T">content-length 229</Trace>

<Trace level="1" type="T">remote-addr 10.20.40.101</Trace>

</Trace>

<Trace level="1" type="T">COMMIT is expected by application !</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-ENTER_XMS" />

- <!-- ************************************

-->

<Trace level="1" type="B" name="CL_XMS_MAIN-SET_START_PIPELINE" />

- <!-- ************************************

-->

<Trace level="1" type="B" name="SXMBCONF-SXMB_GET_XMB_USE" />

<Trace level="1" type="B" name="CL_XMS_TROUBLESHOOT-ENTER_PLSRV" />

<Trace level="1" type="T">****************************************************</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_UC_EXECUTE" />

- <!-- ************************************

-->

<Trace level="1" type="T">Message-GUID = 69CB2C55A02E1048AC67316A17FD109D</Trace>

<Trace level="1" type="T">PLNAME = CENTRAL</Trace>

<Trace level="1" type="T">QOS = BE</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PIPELINE_SYNC" />

- <!-- ************************************

-->

<Trace level="1" type="T">Get definition of external pipeline CENTRAL</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-LOOKUP_INTERNAL_PL_ID" />

<Trace level="1" type="T">Corresponding internal pipeline SAP_CENTRAL</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

+ <Trace level="1" type="B" name="PLSRV_RECEIVER_DETERMINATION">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_RD_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">R E C E I V E R - D E T E R M I N A T I O N</Trace>

<Trace level="1" type="T">Cache Content is up to date</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

+ <Trace level="1" type="B" name="PLSRV_INTERFACE_DETERMINATION">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_ID_PLSRV-ENTER_PLSRV">

<Trace level="1" type="T">I N T E R F A C E - D E T E R M I N A T I O N</Trace>

<Trace level="1" type="T">Cache Content is up to date</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

+ <Trace level="1" type="B" name="PLSRV_RECEIVER_MESSAGE_SPLIT">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

- <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL">

- <Trace level="1" type="B" name="CL_XMS_PLSRV_RECEIVER_SPLIT-ENTER_PLSRV">

<Trace level="1" type="T">number of receivers: 1</Trace>

<Trace level="1" type="T">Single-receiver split case</Trace>

</Trace>

</Trace>

</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_LOG_TO_PERSIST" />

<Trace level="1" type="B" name="PLSRV_MAPPING_REQUEST" />

- <!-- ************************************

-->

+ <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">

<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL" />

- <!-- ************************************

-->

<Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV" />

- <!-- ************************************

-->

<Trace level="1" type="T">Interface Mapping urn:
vendor\http2webservice im_ws</Trace>

<Trace level="1" type="T">RuntimeException during appliction Java mapping com/sap/xi/tf/_mm_ws_</Trace>

<Trace level="1" type="T">java.lang.NullPointerException at com.sap.aii.mappingtool.tf3.AMappingProgram.exceptionCaught$(AMappingProgram.java:59) at com.sap.aii.mappingtool.tf3.Transformer.checkParserException(Transformer.java:182) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:149) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy176.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</Trace>

<Trace level="1" type="T">Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_mm_ws_: java.lang.NullPointerException; null</Trace>

<Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.MappingRuntimeException: Runtime exception occurred during execution of application mapping program com/sap/xi/tf/_mm_ws_: java.lang.NullPointerException; null at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:73) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy176.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: java.lang.NullPointerException at com.sap.aii.mappingtool.tf3.AMappingProgram.exceptionCaught$(AMappingProgram.java:59) at com.sap.aii.mappingtool.tf3.Transformer.checkParserException(Transformer.java:182) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:149) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrun.server.mapping.JavaMapping.executeStep(JavaMapping.java:64) at com.sap.aii.ibrun.server.mapping.Mapping.execute(Mapping.java:91) at com.sap.aii.ibrun.server.mapping.MappingHandler.run(MappingHandler.java:90) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleMappingRequest(MappingRequestHandler.java:95) at com.sap.aii.ibrun.sbeans.mapping.MappingRequestHandler.handleRequest(MappingRequestHandler.java:68) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceImpl.processFunction(MappingServiceImpl.java:79) at com.sap.aii.ibrun.sbeans.mapping.MappingServiceObjectImpl0.processFunction(MappingServiceObjectImpl0.java:131) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.ejb.session.stateless_sp5.ObjectStubProxyImpl.invoke(ObjectStubProxyImpl.java:187) at $Proxy176.processFunction(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sap.engine.services.rfcengine.RFCDefaultRequestHandler.handleRequest(RFCDefaultRequestHandler.java:100) at com.sap.engine.services.rfcengine.RFCJCOServer.handleRequestInternal(RFCJCOServer.java:113) at com.sap.engine.services.rfcengine.RFCJCOServer$ApplicationRunnable.run(RFCJCOServer.java:157) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</Trace>

<Trace level="1" type="E">CL_XMS_PLSRV_MAPPING~ENTER_PLSRV</Trace>

</Trace>

<Trace level="1" type="B" name="CL_XMS_MAIN-WRITE_MESSAGE_TO_PERSIST" />

- <!-- ************************************

-->

</SAP:Trace>

Former Member
0 Kudos

Do you have a User Dedind Function in you message mapping that is named "checkParserException" ?

Sandro

Former Member
0 Kudos

No udf, simple drag and drop of 2 fields from source to tgt.

More details:-

mapping works during design: http://mysite.verizon.net/ravisdn/1/im_http2ws.bmp

message mapping : http://mysite.verizon.net/ravisdn/1/mm_invoke_ws.bmp

how runtime knows webservice URL: http://mysite.verizon.net/ravisdn/1/ws_URL.bmp

How integration server determines webservice URL at runtime? (http->XI->webservice)

Does it take from MessageType XML namespace? That is how I configured (pls refer ws_URL.bmp)

Thanks for the inputs.

Former Member
0 Kudos

Ravi,

Since you said that your message is received in sxmb_moni take the payload and check that payload in mapping. Also in mapping screenshot i see you have not mapped mt_out_from_http to mt_ne_to_ws. You map this also. This dont make any change in the current mapping. Just try this so that we can eliminate our troubleshooting.

Also check your target mapping also.

---Satish

Former Member
0 Kudos

Hi,

How is the http request coming in to XI?

and is the single testing of the interface mapping done using the payload that is being received by XI ?

Thanks.

Former Member
0 Kudos

Ravi,

The IS determines webservice URL at runtime from the receiver communication channel. I think you have specified this in target url of SOAP receiver comm. channel.

---Satish

Former Member
0 Kudos

Satish

I changed to mapping as suggested (http://mysite.verizon.net/ravisdn/1/mm_ws.bmp), however it resulted in same error.

Payload (from sxmb_moni) works good during design (integration design), there is no error from messsage mapping. Please see the input, output from message mapping payload testing. Thanks.

a) Test input

<?xml version="1.0" encoding="UTF-8"?>

<ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">

<fromZip>23</fromZip>

<toZip>323</toZip>

</ns0:mt_out_from_http>

b) Test output

<?xml version="1.0" encoding="UTF-8"?>

<ns1:mt_inb_to_ws xmlns:ns1="http://webservices.imacination.com/distance/Distance.jws"><fromZip>23</fromZip><toZip>323</toZip></ns1:mt_inb_to_ws>

<?xml version="1.0" encoding="UTF-8"?>

Former Member
0 Kudos

Can you also make a print screen of the payload from xmb_moni for us ?

Sandro

Former Member
0 Kudos

Satish,

Thanks, yes SOAP adapter (runtime config) has webservice URL as you pointed out.

Deepu,

I'm using http client download from forum.

payload from sxmb_moni

<?xml version="1.0" encoding="UTF-8" ?>

<?xml version="1.0" encoding="UTF-8" ?>

- <ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">

<fromZip>75033</fromZip>

<toZip>75035</toZip>

</ns0:mt_out_from_http>

If I tested as-is (as above) in int. design, i'm getting null pointer exception in ID , good able to replicate error in ID.

If payload is modified

<?xml version="1.0" encoding="UTF-8" ?>

<ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">

<fromZip>75033</fromZip>

<toZip>75035</toZip>

</ns0:mt_out_from_http>

then ID test works fine in design

****here are the modifications made to sxmb payload

a) remove the duplicate first line <?xml version="1.0" encoding="UTF-8" ?>

b) remove 2 blank spaces in front of 2nd line " <?xml version="1.0" encoding="UTF-8" ?>"

c) remove 1st char and 2nd space from "- <ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">"

Utilized modfied xml that worked in ID in http client (see http_client.bmp attachment), it resulted in null pointer exception

<?xml version="1.0" encoding="UTF-8" ?>

<ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">

<fromZip>75033</fromZip>

<toZip>75035</toZip>

</ns0:mt_out_from_http>

SXMB_MONI screen shots:

http://mysite.verizon.net/ravisdn/1/sxmb_moni.bmp

http://mysite.verizon.net/ravisdn/1/sxmb_moni2.bmp

http://mysite.verizon.net/ravisdn/1/http_client.bmp

Former Member
0 Kudos

Ravi, the payload must to work in the message mapping tool test without ANY modification.

The message will never run without problem with the double encoding declaration.

Please works on http client in order to remove the double declearation.

Sandro

Former Member
0 Kudos

I cut'n pasted the html client from forum /message/266750#266750 [original link is broken]

I request someone to send working http client (as attachment *.htm) to ravisdn@verizon.net. Thanks

It appears the version of http client I have is not creating required payload at IS.

Former Member
0 Kudos

You can try the cURL:

http://curl.haxx.se/download.html

or XMLspy.

Sandro

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi All

I am doing the same scenario HTTP->XI->SOAP which is synchrous

I have created two message interface (outbound synch and inbound synch).i am doing it with out BPM.I have all the configuration correctly in Ir and ID.But still i am getting the following error.

'mapping program not found'.I am getting one more interesing thing in SXMB_MONI.The sender service and receiver service is coming reverse .Please let me know if any have the complete step for the sceario.Immediate response will be appreciated.

Regards

Santosh

Former Member
0 Kudos

Thanks to all of you (points awarded too)

Here is the problem I had:

SXMB_MONI->payload got two headers, when payload was simulated (cut-n-paste as XML into the http client) from integration repository:

<?xml version="1.0" encoding="UTF-8" ?>

<?xml version="1.0" encoding="UTF-8" ?>

- <ns0:mt_out_from_http xmlns:ns0="urn:
vmyvendor.org\http2webservice">

<fromZip>75026</fromZip>

<toZip>75056</toZip>

</ns0:mt_out_from_http>

The same payload when tested in int. repository resulted in EXCEPTION_DURING_EXECUTE. Then tried sending the payload as an file attachment in http_client, webservice now returned the result.

Following weblog helped to debug the error:

/people/michal.krawczyk2/blog/2005/09/16/xi-how-to-test-your-mapping-in-real-life-scenarios

Please point to weblog for posting payload using XMLSpy for additional learning. Thanks.

agasthuri_doss
Active Contributor
0 Kudos

Hi,

1) whether you have imported Java code.

2) What J2EE version you are using.

3) SLDCHECK is it green

Regards

Agasthur iDoss

Former Member
0 Kudos

In which step of the pipeline you have the error ?

Can you post the entire trace of the step that fail ?

Regards,

Sandrp