cancel
Showing results for 
Search instead for 
Did you mean: 

Sender SOAP(Axis) adapter problem

Former Member
0 Kudos

Hello All,

We have successfully deployed Axis adapter SDA and message servlet shows all green.

We configured an interface( SOAP - PI(BPM) - IDOC) using Sender SOAP CC( with Transport protocol Servlet(Axis), message protocol Axis ). All other required configurations have been configured.

When we use SOAPUI tool to send message with following URL,

http://host:port/XIAxisAdapter/MessageServlet?senderService=<BusinessComponent>&receiverService=&int...;

We get following fault message as a response in SOAPUI tool:

<faultstring>senderChannel 'ee83c3c770db3fcf9ce3729301329ea1': Catching exception calling messaging system; nested exception is:

com.sap.engine.interfaces.messaging.api.exception.ConfigException: No sender agreement configured that matches the message's header fields (sender party: "*", sender service: "Businesscomp", interface: "namespace interface", receiver party: "", receiver service: "")</faultstring>

We tried all possible options( such as clear CPA cache, delete CC and re-create ) but with no sucess.

When we changed the Sender SOAP CC with standard SOAP protocol, everything works fine. Hence, it seems that, with Axis adapter, the sender agreement could not determined.

Could anybody help with this issue.

Thanks in advance.

Kind Regards,

Prasad

Accepted Solutions (0)

Answers (2)

Answers (2)

stefan_grube
Active Contributor
0 Kudos

I suppose that your sender channel has party '*'.

Copy the channel to party empty, that should help.

Former Member
0 Kudos

Hi Stefen,

Thats a pefect solution!!!. There was a default * for the party while creating sender agreement. Once we re-created sender agreement without * in party, the interface works fine with Axis.

Thank you very much!!!.

However, we have now another issue. We dont see SOAP Headers( WS-Addressing, and WS-Security ) in the SOAP Response.

We only see SOAP Body in the response. As per the Axis message servlet, all these optional components were correctly deployed.

Should we need to add any modules in CC inorder to get the SOAP header in the response. We were at least assuming that, by default SOAP Header will be added into the response.

Could you please guide us on this.

Kind Regards,

Prasad.

Former Member
0 Kudos

Sorry, I should have read OSS note 1039369. Now we are able to get the WS-Signature and WS-Addressing elements in the SOAP Response message.

Now only one problem left: We see that wsa:MessageID in the SOAP Response is not same as the wsa:MessageID in SOAP Request. Our sender partner needs the MessageID in the response must be same as it in the request. And also wsa:ReplyTo is missing.

We think, that these should have been handled using parameters in Axis handlers. Unfortunately, there is no( at least we could not find any) extensive list of all possible parameters for each Axis handler.

Does anyone has the information about parameters( name and their possible values ) for each Axis handler.

Kind Regards,

Prasad.

Former Member
0 Kudos

Hi,

I assume you are using the standard AdressingHandler.

For the replyTo header, you can set Axis message context property (addressing.replyTo.URI) using one of the handlers (DyanamicConfigurationHeader or MessageContextPropertiesHandler). Which handler to user depends on where do you want to get the replyTo address.

It is tricky to set the MessageID. The FAQ note explains how to set this value using a patched addressing.jar library that provides property addressing.message.ID to set this value.

You can find the XI message ID of the request message in property request.id.

Search for these keywords in the FAQ page and you will find some examples that you can directly use.

Good luck and tell us how it goes.

Regards, Yza

Former Member
0 Kudos

Hi Prasad,

You need to have sender agreement. Make sure you are giving the right values while creating the sender agreement.

Cheers,

---Satish

Former Member
0 Kudos

Hi Satish,

Thanks for your reply. As I mentioned, Sender agreement works fine with standard SOAP( i.e without Axis ). We just changed the adatper properties to Axis.

Do you belive the URL we use for sending message is correct one?.

We think that, either the URL might be wrong, or there is a problem with Cache. However, we could not determine what exactly going wrong.

Kind Regards,

Prasad

Former Member
0 Kudos

Hi Prasad,

You need to keep one thing in mind. Whenever you change communication channel try to create the wsdl based upon the new channel or edit the wsdl maually. So somewhere the binding seems to be not correct in your case. Please recheck once again. Also can you put your url here to see if anything is wrong and if you miss anything.

Regards,

---Satish

Former Member
0 Kudos

Heloo,

Make sure that you have provided User / password while testing from SOAP UI

Regards

Former Member
0 Kudos

Hi Satish,

When we look at Sender agreement WSDL we see following:

http://host:50000/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=SOAP_sender&amp;receiv...

Its quite strange that, although we changed sender CC to Axis, the location above still shows as XISOAPAdapter, should be expected to see XIAxisAdapter there?.

Could you please describe how to manually edit the wsdl. After editing this wsdl manually, how to update the sender agreement with new WSDL?. So far, we have not published any wsdl file into SR. Even without this, our interface with standard SOAP, works fine.

The URL we are using for SOAPUI tool:

http://host:50000/XIAxisAdapter/MessageServlet?senderService=SOAP_sender&receiverService=&interface=...

Here we have following values in the url>

Sender service: SOAP_sender ( this is actually a business component )

interface name: Request_Sync_Abs

interfaceNamespace=urn:comp:application:product

Kind Regards,

Prasad.