WS-Addressing and WS-RM: Nested Reference Parameters in request are not 
supported and become concatenated in the response to client
-----------------------------------------------------------------------------------------------------------------------------------

                 Key: CXF-3840
                 URL: https://issues.apache.org/jira/browse/CXF-3840
             Project: CXF
          Issue Type: Bug
          Components: WS-* Components
    Affects Versions: 2.4.2
         Environment: Client: Oracle Service Bus 11g R1 Patchset 3
Server : RedHat SOA Platform 5.1.0.GA with CXF
OS: Windows XP SP3
            Reporter: Chris Bell


I have created a test one way ping service on JBoss using CXF with Addressing 
and WS-RM. JBoss client to JBoss service works fine.

I have then created a service client on Oracle Service Bus (OSB) to the same 
service.

OSB creates reference parameters as follows:

<wsa:ReferenceParameters 
xmlns:serviceidentity="http://www.bea.com/ServiceIdentity";>
<serviceidentity:ServiceIdentity 
xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility"; 
xmlns:serviceidentity="http://www.bea.com/ServiceIdentity";>
<serviceidentity:ServerName>AdminServer</serviceidentity:ServerName>
<serviceidentity:ServiceName>weblogic.wsee.conversation.msg.cluster.service</serviceidentity:ServiceName>
</serviceidentity:ServiceIdentity>
</wsa:ReferenceParameters>

and JBoss returns (as an element in the soap header)

<ns2:ServiceIdentity xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"; 
xmlns:ns2="http://www.bea.com/ServiceIdentity"; 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"; 
wsa:IsReferenceParameter="1">AdminServerweblogic.wsee.conversation.msg.cluster.service</ns2:ServiceIdentity>


So, I have looked at the CXF source and see that there is no provision for 
nested reference parameters as provided by OSB. Hence 2 child elements in the 
reference parameter returns a concatenated object that we see in the CXF 
response.

In section 2.3 of the WS-Addressing Spec 
(http://www.w3.org/Submission/ws-addressing/), the second rule states that:

Each [reference property] and [reference parameter] element becomes a header 
block in the SOAP message. The element information item of each [reference 
property] or [reference parameter] (including all of its [children], 
[attributes] and [in-scope namespaces]) is to be added as a header block in the 
new message.

The key in here is the [children], which implies that child elements of a 
reference parameter are acceptable and should be processed.

The MAPCodec.encodeReferenceParameters class.method in CXF does not appear to 
cater for nested reference parameter elements.

Am I correct in my understanding and therefore, this is a bug?

Many thanks in advance

Chris

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to