SOAP dynamic
Scenario is X --> SAP XI ---> Y.
Y is a webserver. So I am using SOAP receiver channel.Generally there is an option in receiver channel to mention target URL.
Is it possible to read the target URL dynamically from the message mapping(If sender system sends it in the Input payload)?
Or
Is there any option like variable substitution in SOAP receiver communication channel?
Thanks
Regards,
Naresh
Hi Naresh,
1.Do I need to add an extra field to the target structure(target DT) to handle the URL?
No that is not required, as the ASMA that are set in the channel are not a part of the message payload but the header. The server url will be set and you can see the dynamic url in the DYNAMIC CONFIGURATION tab of SXMB_MONI.
See this link for more details on dynamic configuration:
http://help.sap.com/saphelp_nw04/helpdata/en/43/03612cdecc6e76e10000000a422035/frameset.htm
2.If I enable Adapter specific attributes in receier soap channel, what I needs to give in target URL option?What are the other changes I need to do in the channel?
You can provide any dummy value there. It will be over written by the dynamic url provided. No other changes are required.
Regards,
Sanjeev.
Similar Messages
-
SOAP adapter and dynamic target URL
My scenario: synchronous communication ABAP Proxy <=> XI <=> External WebServices.
There is a need to have configurable (dynamic) target URL for SOAP Adapter. This target should be configurable from ABAP Proxy. Any idea how can I achieve my goal?
Some additional notes why I need configurable target URL. I've multiple WebService instances which has identical interfaces and the only difference is target URL. I see no need to define for each webservice different SOAP Adapter. The other thing is that customer want to have configuration of destination (target) url on backend system (where ABAP Proxy is used).Check http://help.sap.com/saphelp_nw70/helpdata/EN/29/5bd93f130f9215e10000000a155106/frameset.htm
It's possible to set the URL for Soap dynamically.
To process adapter attributes in the message header of the XI message, set the Use Adapter-Specific Message Attributes indicator and the Variable Transport Binding indicator.
You can evaluate the following attributes in the message header:
Description: You can set the entire URL.
Technical name: TServerLocation -
hi i would like to have a notice on my webpage if a new
record gets inserted to a table in my database
ie if a new record is entered a small icon appears on the
page, can this be done without having to refresh the page?There is another option of using SOAP & Dynamic HTML. You
have to write a component in VB that will retrive the data from
your database and return back. The method in the VB has to be
exposed and SOAP WSDL configured. You can use MS SOAP toolkit to
built the WSDL for your component if you are not used to it.
In your web page, write javascript that calls a function say
every minute. This javascript function has to use MSXML objects and
submit a request as SOAP call. You will get the response and based
on the response, dynamically manupulate your web page without
refreshing.
If you are not familiar with all these write a <IFRAME>
with no border in your page and this frame content will refresh
every minute to get the content what you want. Really the user will
not know you are refreshing the page as the iframe will be small
and only a part of your page. -
Error while passing URL Dynamically in SOAP AXIS adapter..!!
Hi ,
Idoc> XI>SOAP-AXIS
I am doing a scenario where I need to pass the URL dynamically in SOAP-AXIS adapter by taking the RCVPRN of Idoc.
If
RCVPRN = 100 , message has to go to http://10.190.25.16:8210/file/receiver
RCVPRN = 200 , message has to go to http://10.190.25.16:8210/file/receiver2
RCVPRN = 300 , message has to go to http://10.190.25.16:8210/file/receiver3
I used the below UDF and it is working correctly and generating the URL dynamically .
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey keyHeader1 = DynamicConfigurationKey.create( "http://sap.com/xi/XI/System/SOAP", "TServerLocation");
conf.put(keyHeader1, a);
return "";
The value is coming in SOAP document as expected like below.
<sap:DynamicConfiguration xmlns:sap="http://sap.com/xi/XI/Message/30" SOAP:mustUnderstand="1">
<sap:Record namespace="http://sap.com/xi/XI/System/SOAP" name="TServerLocation">http://10.190.25.16:8210/file/receiver3</sap:Record>
</sap:DynamicConfiguration>
I used the below Configuration modules in receiver SOAP-AXIS adapter as suggested in Note 1028961.
AF_Adapters/axis/AFAdapterBean ---> afreq
AF_Adapters/axis/HandlerBean ---> xireq
AF_Adapters/axis/HandlerBean ---> dc
AF_Adapters/axis/HandlerBean ---> remover
AF_Adapters/axis/HandlerBean ---> trp
AF_Adapters/axis/HandlerBean ---> xires
AF_Adapters/axis/AFAdapterBean ---> afres
xireq -> handler.type-> java:com.sap.aii.axis.xi.XI30OutboundHandler
dc -> handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
dc ---> key.1 ---> write http://sap.com/xi/XI/System/SOAP TServerLocation
dc ---> location.1 ---> context
dc ---> value.1 ---> transport.url
remover ---> handler.type ---> java:com.sap.aii.axis.soap.HeaderRemovalHandler
remover ---> namespace ---> http://sap.com/xi/XI/Message/30
trp ---> handler.type ---> java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
trp ---> module.pivot ---> true
xires ---> handler.type ---> java:com.sap.aii.axis.xi.XI30OutboundHandler
and I am getting the below error in SOAP-AXIS channel at the point java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender.
2009-03-02 15:23:44 Success Axis: getting handler trp of java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
2009-03-02 15:23:45 Error Axis: error in invocation: (500)internal server error
2009-03-02 15:23:45 Error MP: Exception caught with cause (500)internal server error
2009-03-02 15:23:45 Error Exception caught by adapter framework: (500)internal server error
2009-03-02 15:23:46 Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: (500)internal server error: (500)internal server error.
2009-03-02 15:23:46 Error The message status set to NDLV.
Kindly let me know if anyone has any idea what might be wrong?
Note : The given URL is correct one because I cross checked by passing them normally by giving directly in adapter and they are all working and the message is going to receiver.
Thanks
DeepthiHi Stefan,
>> dc -> handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
>> dc ---> key.1 ---> write http://sap.com/xi/XI/System/SOAP TServerLocation
>> dc ---> location.1 ---> context
>> dc ---> value.1 ---> transport.url
>> Try read instead of write
When I tried with this, I am getting the below error "Connection refused ".
Success Axis: entering HandlerBean
Success Axis: getting handler trp of java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
Error Axis: error in invocation: java.net.ConnectException: Connection refused
Error MP: Exception caught with cause java.net.ConnectException: Connection refused
Error Exception caught by adapter framework: ; nested exception is: java.net.ConnectException: Connection refused
Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: ; nested exception is: java.net.ConnectException: Connection refused: java.net.ConnectException: Connection refused.
Success The message status set to WAIT.
It is going successfully when I tried sending directly. Looks like Dynamic Configuration is not working for SOAP-AXIS.
Any Suggestion?
Thanks
Deepthi. -
Setting interface name dynamically from client for SOAP Adapter...
Hi,
does anyone have experience in setting the sender interface name in the HTTP-SOAP request dynamically? I have followed the instructions in "How To Use the XI 3.0 SOAP Adapter" on page 17 (see also SAP Note 856597) which say:
"If you select Use Encoded Headers and Use Query String,
[...]The sender SOAP adapter creates the XI message header according to the
information provided in the query string. [...] In the sender SOAP adapter, you can use only some of the parameters, but the first
parameter must always be the version. For example, you send from the Web service client to the following URL: http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?channel=<party>:<service>:<channel>&version=3.0&Interface=http%3A
%2F%2Fsap.com%2Ftest%5ETest
This will overwrite the default interface and namespace of the sender channel."
This is exactly what I need! However, what I actually get as a response following this description is a SOAP:Fault with a java.lang.StringIndexOutOfBoundsException: String index out of range: -1.
Has anyone got this to work properly?
Thanks in advance.Thank you for your input. I am using the following format for the call (with "x" standing for one letter each):
http://xix.xxx.xx.xxx:5xx00/XISOAPAdapter/MessageServlet?channel=:xx_xxx_xxx_xxxx:xx_xxx_x_SOAP_S&version=3.0&Interface=http%3A%2F%2Fxxxxxxxx.xx%2Fxxxxxx%2Fxxxxxxxxxxxxxxxxxxxxxxxx%5Exxxxxxxxxxxxxxxxxxxxxx
Anything wrong with that? With unchecked "Use Encoded Headers" and "Use Query String" it works fine (default interface) but as soon as I set these flags I get the SOAP-Fault response.
We are on XI 3.0 SPS18. -
Dynamic URL in SOAP Receiver adapter
Hi all,
I have a scenario where I am using a SOAP receiver adapter to send a cXML document to some vendors. I need to change the URL based on the vendor number (passed by sender SRM system). So I have created a user-defined function and used in message mapping to assign the right URL to the variable TServerLocation. But the communication channel still prompts for a static URL which appears to be a mandatory field. Even though the DynamicConfiguration tab in Message Monitoring shows that the TServerLocation was correctly assigned, the scenario does not work when I put some dummy in the static URL field like 'dummy' or '*'. Any ideas on how to make the communication channel go for the dynamic URL field and ignore the static URL field? I have already selected the'Use Adapter Specific Message attributes' and 'Variable Transport Binding' check boxes. Am I referring to the correct variable that references the target URL? Also other than the two checkboxes that I mentioned, I am not displayed anything else under "Adapter Specific Message Attributes" section in the comm. channel.
ThanksJames,
I ve just been digging into SAP help, and have tried it too ... Looks like it doesnt work the way it is supposed to.
Anotheer point i found was, in the FILE ADAPTER, when we say ADAPTER SPECIFI ATTRIBUTES , we can select the attirbutes.. This is not possible in a SOAP adapter...
Maybe, we can only access the ADAPTER SPECIIFC ATTIRIBUTES of a SOAP adapter, but cannot set them dynamically.
Let me know if you find something on this issue.
Regards,
Bhavesh -
Issue in Dynamic configuration in SOAP receiver channel
Hi All,
My scenario is file to SOAP. At receiver side I want to generate URL dynamically.
To proceed step by step, I started with passing a constant URL to Dynamic configuration UDF.
mapping:
Dynamic conf. UDF
Channel Configuration:
From testing, I found that channel always takes the url given in Target URL field and dynamic URL in TserverLocation is been ignored by the channel.
That is dynamic configuration is not working completely.
I went through a lot of blogs and also tried a lot of trial and error methods, but none helped. Every thing I configured looks perfect for me, but still not working. I don't understand where I went wrong. Please help me.Hi Experts,
I am facing similar issue,
URL --> UDF --> @dynamicvariable
I have created a variable underparent node eg: DESADV-->dynamicvariable
passed complete URL to UDF, below is the UDF
& configured SOAP Receiver Channel as well. This is IDOC to IDOC scenario, using IDOC_AAE on sender side and SOAP on receiver in single stack.
--> Checked ASMA
--> Checked Variable Transport Binding and given "TServerLocation" without quotes in XHeaderName1
--> Target URL: http://
But when I am running this interface, nothing is coming in Dynamic configuration.
Ref: Message Log:
MM and OM is also perfect in ESR.
Any suggestions? Please advice.
Regards
Singh -
Use of SOAP Receiver Adapter in a recursive way with dynamic Target URLs
Hi all,
I have a following scenario.
1. I have to call a webservice with a URL http://myserver.com/default.aspx?action=index
This will return a list of xml filenames as below
<?xml version="1.0" encoding="UTF-8"?>
<filelist>
<file uuid="test1" />
<file uuid="test2" />
<file uuid="test3" />
<file uuid="test4" />
</filelist>
2. Now I have to call the same webservice with a change in action so that the url looks like
URL - http://myserver.com/default.aspx?action=fetch&uuid=
for all the filenames in the list
So in essence, I have to create a dynamic URLs recursively like
http://myserver.com/default.aspx?action=fetch&uuid=test1
http://myserver.com/default.aspx?action=fetch&uuid=test2 and so on
3. And with each call to the URL in step 2, the incoming xml is to be mapped to an IDoc.
I will be creating a ABAP proxy to initiate the calls.
I would like some ideas so as to have a less complex approach to the solution.
Regards,
NeerajHi,
dynamic SOAP URL - adapter specific properties (http receiver adapter)
Dynamic configuration payload - https://media.sdn.sap.com/javadocs/NW04/SPS15/pi/com/sap/aii/mapping/api/DynamicConfiguration.html
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
String a = http://something.abcd/applicationName/xmlMessage //set the value of actual action here
conf.put(key, a);
return ""; -
Problem with Dynamic Configuration in SOAP-AXIS adapter..!!!
Hi ,
Idoc> XI>SOAP-AXIS
I am doing a scenario where I need to pass the URL dynamically in SOAP-AXIS adapter by taking the SNDPRN of Idoc.
If SNDPRN = 100 , message has to go to http://10.190.25.16:8210/file/receiver
SNDPRN = 200 , message has to go to http://20.180.26.16:8210/file/receiver
It is working correctly when I tried for single receiver. When I' tried to use DynamicConfiguration, it is coming in SOAP document but it is not working and not passing to correct channel. According to this note 1039369, I mentioned the following modules.
AF_Adapters/axis/AFAdapterBean ---> afreq
AF_Adapters/axis/HandlerBean ---> xireq
AF_Adapters/axis/HandlerBean ---> dc
AF_Adapters/axis/HandlerBean ---> remover
AF_Adapters/axis/HandlerBean ---> trp
AF_Adapters/axis/HandlerBean ---> xires
AF_Adapters/axis/AFAdapterBean ---> afres
xireq -> handler.type-> java:com.sap.aii.axis.xi.XI30OutboundHandler
dc -> handler.type-> javasap.aii.axis.xi.XI30DynamicConfigurationHandler
dc ---> key.1 ---> write http://sap.com/xi/XI/System/SOAP TServerLocation
dc ---> location.1 ---> context
dc ---> value.1 ---> transport.url
remover ---> handler.type ---> java:com.sap.aii.axis.soap.HeaderRemovalHandler
remover ---> namespace ---> http://sap.com/xi/XI/Message/30
trp ---> handler.type ---> java:com.sap.aii.adapter.axis.ra.transport.http.HTTPSender
trp ---> module.pivot ---> true
xires ---> handler.type ---> java:com.sap.aii.axis.xi.XI30OutboundHandler
and I am getting the below error in SOAP-AXIS channel
Error Axis: error in invocation: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
Error MP: Exception caught with cause java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
Error Exception caught by adapter framework: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
Error Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
Kindly let me know if anyone has any idea what might be wrong?
Thanks
DeepthiI have a similar problem. I also like to add some header fields to my message und that's way I'm trying to use the AXIS adapter. (Axis adapter FAQ question 30) Unfortunately I'm getting exactly the same error message:
com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.IllegalArgumentException: object type invalid: class com.sap.aii.adapter.xi.ms.XIMessage
Deepthi, you wrote that you have missed one jar file. Can you remember which file it was? -
Dynamic Configuration of SOAP Action
Hello Everyone,
I am currently working on a project which requires us to set the SOAP action dynamically:
I did follow the guidelines mentioned in the following links
Dynamic Configuration of Some Communication Channel Parameters using Message Mapping
Dynamic webservice selection
The process which we are using is as follows
We are creating the following UDF and mapping the root nodes in message mapping using it
DynamicConfigurationKey keyURL = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
// access dynamic configuration
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
conf.put(keyURL,"RetrieveList");
return "";
In the Receiver Comm Channel we are setting the use adapter specific identifiers option and the use variable binding option. We are leaving the SOAP Action field blank.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- Inbound Message
-->
<SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<faultcode>SOAP:Server</faultcode>
<faultstring>String index out of range: 0</faultstring>
<faultactor>Server</faultactor>
</SOAP:Fault>
Now we tested the scenario using TCP Mon and we identified that for the value of SOAP Action we are getting the following results
SOAPAction:
SOAPAction: actual value
It means that 2 SOAP Action are generated one being the empty SOAP Action from Receiver Comm Channel and the other being the one generated using UDF.
Can anyone please update us on if our steps are proper or is there a way to supress the SOAP Action which we left empty in the receiver comm channel.
Your help is truly appreciated.
Thanks.
KiranDid you follow all the three steps I have pointed in the thread,
1. In the Receiver SOAP adapter,Select options ,
a) Use Adapter Specific Message Attributes
b) variable Transport Binding.
c) Keep the SOAP action field empty.
In the receiver SOAP adapter, make sure that the soap action is empty and the above options are selected.
In this case, the SOAP action from the UDF will be choosen.
But, if you enter something in the receiver SOAP adapter's SOAP action this will be treated as the SOAP action rather than the UDF code.
Regards
Bhavesh -
Dynamic URL for SOAP receiver adapter
Hey!
I've been looking all over the forum for this issue. What I have seen is many good suggestions, but no one seems to have made this work.
I have tried with message mapping and TServerLocation, but when the scenario is executed, Target URL in the communication channel always overrides the suggested URL from the mapping.
Is is possible to do this dynamic configuration? Do I have to use HTTP adapter and create envelope with mapping instead? Anyone in here actually got this dynamic URL working?
Thanks a bunch!
regards OleHello Cengiz Aytemir,
I am stuck with a similar issue that you faced earlier. I've configured the scenario as you have suggested (Both the UDF and the CC settings). I've hard coded the Target URL as http://
I can see the dynamic URL set correctly in the MONI but the request that I am sending is not reaching the web service.
Below is the error that I am getting:
<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, 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 am on PI 7.0.
Any help in this regard is highly appreciated.
Best Regards,
Vijay -
SOAP Receiver Adapter - Dynamic URL
Has anyone tried modifying SOAP URL dynamically using UDF in the mapping?. I searched Forum and couldn't get right answer. Does it work with Adapter Specific settings and variable transport binding? Please donot post links to other posts unless it got an answer or atleast close to being answered. We are on PI7.0. Thanks
Hi,
I have similar situation. My target URL lookslike this
http://devlsales.test.com:8000/soap/services/AdapterService which is a working right now.
With Variable transport binding ( TServerLocation ), Can I change http://devlsales.test.com from above URL to
http://devlprofits.test.com and remaining text same resulting
http://devlprofits.test.com:8000/soap/services/AdapterService by using UDFs.
Thanks
ST
Thanks -
Issue while passing Target URL dynamically in SOAP Receiver Adapter
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 [Dynamic URL for SOAP receiver adapter;.
I am on PI 7.0.
Any help in this regard is highly appreciated.
Best Regards,
VijayIssue 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... -
Can Soap Action be dynamically substituted in receiver side soap Action ?
Hi all
I am trying to place Action in Soap Receiver adapter.
I could see the THeaderSoapAction and the action I have specified in Dynamic Configuration and that action is not getting triggered
I was going through previous posts and Raj was mentioning that there was some problem with Soap Receiver adapter while dynamically placing Soap Action.
Is it so? Has anyone dynamically passed Soap Action using Adapter specific parameters?
If its cannot be achieved with ASP, What is the best alternate to this ?
Thanks and Regards,
Nikhil.Have not tried this option, but theoretically it should work using the Adapter Specific message attributes
http://help.sap.com/saphelp_nw2004s/helpdata/en/29/5bd93f130f9215e10000000a155106/content.htm
Regards,
Prateek -
Error when setting dynamically the target URL in receiver SOAP Adapter
Hi,
I'm setting dynamically (from the mapping) the target URL in the receiver SOAP adapter:
String url = "http://mosxd30:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=DUM&receiverParty=&receiverService=&interface=SI_OA_CustomInvoiceData&interfaceNamespace=urn:repsol.com:laboratory:firma";
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TServerLocation");
conf.put(key, url);
The receiver adapter fails with:
"invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized"
Reading weblogs, etc, the most probable cause for this is a wrong target URL, but then what I did was to set it as a fixed URL in the C.Channel, and it worked, so the URL is fine.
In the communication channel, I'm using "Configure user authentication", with a user and password, and what I think it's happening is that if I use another different URL dynamically, the channel is ignoring the user authentication settings.
Any ideas?
ThanksI forgot to say that I've checked the SAP note "FAQ Soap adapter", and it says:
Q: I get an authorization error "401 Unauthorized" from the adapter's servlet. What went wrong?
A: The adapter's servlet is protected by default. You must use one of the user names assigned in security role xi_adapter_soap_message for component XISOAPAdapter. Please consult the documentation for Visual Administrator to view and change the security setting.
The user authentication of the SOAP adapter is not part of the SOAP adapter but of the web container of the J2EE engine. The default authentication setting is defined in the web.xml descriptor file of the SOAP dapter web application. This setting may be modified from Visual Administrator with some restriction. Please refer to the security documentation for the J2EE engine.
Please note that 710 onwards there is no Visual Administrator instead the Netweaver Administrator is to be used to assign the roles to the user to access the SOAP adater servlet.The user must be assigned one of the following roles SAP_XI_IS_SERV_USER, SAP_XI_APPL_SERV_USER, SAP_XI_DEVELOPER_J2EE, SAP_XI_ADMINISTRATOR_J2EE.
The target URL is a sender soap adapter (the result of one interface is sent to another one via soap adapter), and it's this one which is complaining because of the authentication I think. But I don't know why it's ignoring the user authentication flag I'm using.
Maybe you are looking for
-
Recovering data from problem hard drive?
I have a TiBook 667MHz with what appears to be a hard drive problem. It starts to boot up fine, but at a certain point in the process it hangs for a while and then shuts itself off. Apparently the hard drive made an unusual clicking noise when the pr
-
I have a MacBook Pro from 2011. I've purchased the Mountain Lion software
What do I need to do to get the password to work?
-
i need help.it doesn t work.i try to restore my iphon e but almost to the final it shows me an error-1015. i looked on the listwith errors but i couldn t find what hios error means.please HELP!
-
Calling a Webdynpro Iview from a Web Page
Hi guys we are trying to display a custom webdynpro iview in a web page. when the user clicks on a link on the left side navigation in the webpage it is supposed to open the webdynpro iview in an Iframe in the same window beside the left navigation a
-
Problem in execute query?
hello all, table structure: create table cor_dept_mst (dept_locn_code varchar2(6) not null, dept_code varchar2(2) not null, dept_name varchar2(200), constraint cordeptmst_pk primary key(dept_locn_code,dept_code)); in form all 3 feilds dispaly. when i