cancel
Showing results for 
Search instead for 
Did you mean: 

AXIS receiver adapter removing element from soap request

Former Member
0 Kudos

Hi,

I've configured axis receiver adapter in PI 7.1.

When the request is sent, event though my mapping keeps the whole request intact, PI removes the first tag after the body. Here is the data that is sent to the ws provider.

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<HEADER>

<a>a</a>

</HEADER>

<b>

<b1>b1</b1>

</b>

</soapenv:Body>

</soapenv:Envelope>

The following tag has been removed : <ns1:methodtocall xmlns:ns1="urn:THESCHEMA">

It should be

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

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<soapenv:Body>

<ns1:methodtocall xmlns:ns1="urn:THESCHEMA">

<HEADER>

<a>a</a>

</HEADER>

<b>

<b1>b1</b1>

</b>

</soapenv:Body>

</ns1:methodtocall>

</soapenv:Envelope>

The settings I put are :

No Headers

No Attachments

Payload extraction = SOAP Body

Am I missing something... why is this happening.

If I set it to Payload extraction = SOAP body child... the tag is sent correctly. Unfortunately I don't want to use that option.

Thanks.

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

The SOAP adapter allows only one child node of soap:body.

If you want to read all chils nodes, yo have to write an Axis handler for this.

Former Member
0 Kudos

Hi ,

I've actually got this to work for message sending and receiving by using the AXIS SOAP adapter and using parameter payload = bodyChild on the request handler.

Now the problem I have is that the mapping canot handle multirefs... That is , in the mapping editor, the structure ignores the fact that I will be getting multirefs.

That is , in the message , instead of seeing the multiref tags , I just see a regular array.

I think I may have to write a java mapping for this... but this beats the whole purpose of why we are actually using PI.

Thanks.

Answers (0)