cancel
Showing results for 
Search instead for 
Did you mean: 

Issue while passing Target URL dynamically in SOAP Receiver Adapter

former_member55105
Participant
0 Kudos

Experts,

I am stuck with an issue while passing the Target URL dynamically.

The UDF required for this works just fine. I can see the Target URL in Dynamic Configuration header(The Key is TServerLocation) in SXMB_MONI but the request that I am sending is not reaching the web service.

Some posts have suggested to hard code the Target URL as http://.

Below is the error that I am getting when I hard the Target URL as http://:


<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <SOAP:Fault>
         <faultcode>SOAP:Server</faultcode>
         <faultstring>Server Error</faultstring>
         <detail>
            <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
               <context>XIAdapter</context>
               <code>RecoverableException</code>
               <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML
	at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
	at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
	at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
	at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
	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)</text>
            </s:SystemError>
         </detail>
      </SOAP:Fault>
   </SOAP:Body>
</SOAP:Envelope>

When I hard code the Target URL as Test (any dummy value), the error that I get is different. (Detailed error shown below)


<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP:Body>
      <SOAP:Fault>
         <faultcode>SOAP:Server</faultcode>
         <faultstring>Server Error</faultstring>
         <detail>
            <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
               <context>XIAdapter</context>
               <code>RecoverableException</code>
               <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: no scheme
	at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
	at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
	at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
	at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
	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)</text>
            </s:SystemError>
         </detail>
      </SOAP:Fault>
   </SOAP:Body>
</SOAP:Envelope>

I've referred the post [;.

I am on PI 7.0.

Any help in this regard is highly appreciated.

Best Regards,

Vijay

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member181985
Active Contributor
0 Kudos

check this blog (Section 3): [Troubleshooting SOAP Message - XI|http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5498] [original link is broken] [original link is broken] [original link is broken];

former_member55105
Participant
0 Kudos

Hi Praveen,

I've already referred to this blog and have implemented it. But I don't see any changes in the response. Just fyi.., the scenario works fine if I put the web service URL in TARGET URL field in SOAP receiver adapter. I start getting the error only when I pass the URL dynamically.

Any other ideas please??

Thanks,

Vijay

Edited by: Vijaya Paidisetty on Jan 27, 2011 8:42 AM

former_member200962
Active Contributor
0 Kudos
I start getting the error only when I pass the URL dynamically.

then the URL is not generating properly....or you have not selected the ASMA for Target URL in SOAP Receiver Channel.

stefan_grube
Active Contributor
0 Kudos

> the scenario works fine if I put the web service URL in TARGET URL field in SOAP receiver adapter. I start getting the error only when I pass the URL dynamically.

>

> Any other ideas please??

Your dynamicac URL is wrong, what else could it be?

former_member55105
Participant
0 Kudos

Stefan/Abhishek,

The dynamic URL that I am passing in is correct. The URL that I'm passing dynamically, if I put (hard code) the same URL in the TARGET URL field, the scenario runs fine. And I can see the URL in DynamicConfiguration header in MONI which is correct. Anything else that is missing?? Pl let me know.

One more question.. I've implemented the section no. 3 in the blog [http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/5498] [original link is broken] [original link is broken] [original link is broken];...Is this configuration mandatory?

-Vijay

stefan_grube
Active Contributor
0 Kudos

> I've implemented the section no. 3 in the blog .Is this configuration mandatory?

When you check "Don't use SOAP Envelope", then it might be necessary to change the content type.

If you do not check this field, then do not use this additional module.

Edited by: Stefan Grube on Jan 27, 2011 10:08 AM

former_member55105
Participant
0 Kudos

Hi Abhishek,

Sorry, missed to mention. I've checked the box for ASMA. As I am on PI 7.0, it doesn't provide the option for selecting a particular Adapter Specific Message Attribute.

-Vijay

former_member55105
Participant
0 Kudos

Issue resolved... by doing this:

DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TAuthKey");

...

conf.put (key2, "username");

In the advanced tab of the communication channel, set the flag "View Authorization keys", and then added "username" (user to access the dynamic target url) and the password (2 times).

That's it...