cancel
Showing results for 
Search instead for 
Did you mean: 

DynamicConfiguration - Comma is appended in start of Soap Action

Former Member
0 Kudos

HI All,

I am setting soapAction in receiver communication channel using DynamicConfiguration.

I performed following Configuration in receiver SOAP adapter.

Advanced Tab -> Check 'Use Adapter Specific Message Attributes' -> Check 'Variable Transport Binding' -> Variable Header (XHeaderName1) = THeaderSOAPACTION SOAP Action in General Tab is empty

I am using following code snippet in UDF under message mapping.

DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get
(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
 
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP","THeaderSOAPACTION");
 
String soapAction = "http://abc.com/acon/service/1.0/IServiceOut/AddNote";
conf.put(key, soapAction);
 
return "";

Now while executing scenario using SOAPUI tool, at runtime i get following soap error message -

soap fault: The message with Action ', http://abc.com/acon/service/1.0/IServiceOut/AddNote' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver. Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

I observed that in soapAction "," (comma) is being appended in starting. I believe this additional comma is causing problem. How can we remove this automatically appended comma from Soap Action?

Thanks in anticipation.

- Gopi

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Thanks all,

We able to resolve the issue of appending comma(,)at the starting of SOAPAction and getting two SOAPAction by applying the OSS note :1255400.

Gopi.

Answers (2)

Answers (2)

former_member303666
Active Participant
0 Kudos

Hi gopi,

check the below link for dynamic configuration.

http://www.saptechnical.com/Tips/XI/ASMA/Index.htm

regards,

Kesava.

Former Member
0 Kudos

Hi,

We are able to solve additional comma (,) problem in start of SOAPAction. Thanks for your inputs.

But now we are facing another problem which contains 2 SOAPActions in HTTP Headers as shown below.


POST /MyService/MyService.svc HTTP/1.0
Accept: */*
Host: training.com:8080
User-Agent: SAP-Messaging-com.sap.aii.af.sdk.xi/1.0505
content-id: <soap-001CC4FC74A51EE18DF87E8066A44800.sap.com>
Content-Type: text/xml; charset=utf-8
Content-Length: 277
SOAPACTION:
SOAPACTION: <a href="http://abc.com/acon/service/1.0/IServiceOut/AddNote" TARGET="test_blank">http://abc.com/acon/service/1.0/IServiceOut/AddNote</a>

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
<SOAP:Header/>
<SOAP:Body>
some body message
</SOAP:Body>
</SOAP:Envelope>

Please provide inputs to remove empty SOAP Action from HTTP Headers.

Do i need to set any parameter in receiver channel to suppress it?

- Gopi

Former Member
0 Kudos

HI,

Instead of ASMA, you can try to set the SOAP ACtion using the Conversion Parameters in the SOAP Receiver Adapter.

Refer below thread,

regards,

ganesh.

Former Member
0 Kudos

Hi,

check your WSDl file. open with notepad and check the soap action is there any comma or not.

check your UDF which was you are writing in mapping to get the soap action dynamicaly.

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

DynamicConfiguration conf =

(DynamicConfiguration) container.getTransformationParameters ().get (StreamTransformationConstants.DYNAMIC_CONFIGURATION);

String soapAction = "http://abc.com/acon/service/1.0/IServiceOut/AddNote";

conf.put(keyURL, soapAction);

return soapAction;

regards,

ganesh.

Former Member
0 Kudos

Hi Ganesh,

WSDL does not contain comma in soap action.

Comma is added to soap action by UDF or may be by system.

If i pass empty string "" as soap Action in UDF even then at runtime soap action is "," .

E.g. conf.put(key, "");

Means it is appended at runtime somehow by system.

Any inputs?

- Gopi

Former Member
0 Kudos

Hi,

Instead of conf.put(key, ""); try to use conf.put(keyURL, soapAction);.

as my previous post i wrote UDF try to use that UDF to avoid the current problem.

regards,

ganesh.

Former Member
0 Kudos

Hi,

I tried using your UDF code exactly but encountered same problem yet.

FYI, in message mapping UDF is assigned to parent node of target message type.

- Gopi

Former Member
0 Kudos

Hi,

yes, you have to map

parent node of source > UDF-> parent node of target.

check you udf and mapping properly mapped or not.

regards,

ganesh.

Former Member
0 Kudos

Hi,

I tried "parent node of source > UDF-> parent node of target" this also but still I am getting the same error.

-Gopi