[
https://issues.apache.org/jira/browse/CXF-1254?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12548846
]
Eoghan Glynn commented on CXF-1254:
-----------------------------------
Originally the CXF multi-version WS-A support was intended to account for the
fact the target WS-RM version implemented by CXF (i.e. WS-RM 1.0 AKA 2005/02)
explicitly called for an older WS-A version, i.e. 2004/08, as opposed to the
then current 2005/08 version.
Thus the native WS-A version used by CXF is 2005/08, but the capability is also
provided to transform to another specific version on the wire. CXF WS-RM is
hard-coded to use this capability to force usage of WS-A 2004/08 (as required
by the target WS-RM spec
http://specs.xmlsoap.org/ws/2005/02/rm/ws-reliablemessaging.pdf).
Now, leaving WS-RM aside for a second, the normal server-side CXF WS-A behavior
is to respond to incoming WS-A-mediated messages using the *same* WS-A version,
if this version is supported.
But in the WS-RM case, this "respond in kind" logic is programmatically
over-ridden to force usage of WS-A 2004/08.
Now the question in my mind is whether CXF is effectively mandated to behave
this way by the explicit basing of the WS-RM 1.0 spec on WS-A 2004/08.
What is the target WS-RM supported by the WCF client? If this is WS-RM 1.0,
then is WCF acting ultra-vires by using WS-A 2005/08? Or if WCF supports WS-RM
1.1 by default, can this version be rolled back to 1.0 as to facilitate interop
with CXF?
> WS-A Interop with .Net WCF - CXF fails to interop with .Net WS-A due to use
> of old namespace.
> ---------------------------------------------------------------------------------------------
>
> Key: CXF-1254
> URL: https://issues.apache.org/jira/browse/CXF-1254
> Project: CXF
> Issue Type: Improvement
> Components: WS-* Components
> Affects Versions: 2.0.3
> Environment: CXF 2.0.3
> JBoss
> Spring
> .Net WCF client
> WSDL first development
> Reporter: Paul Freeman
> Fix For: 2.0.4, 2.1
>
>
> CXF is not compatible with .net's WCF implementation. I have successfully
> configured reliable messaging in both CXF and .net. The client is .net and
> the service is CXF. .net makes the initial request to create a sequence and
> expects the response to contain a <RelatesTo> header tag. The namespace for
> this header tag is an addressing namespace.
> It turns out that CXF returns the addressing namespace
> http://schemas.xmlsoap.org/ws/2004/08/addressing
> But WCF sent the request with the this namespace:
> http://www.w3.org/2005/08/addressing
> So the result is that WCF cannot find the <RelatesTo> header tag.
> I wrote the wsdl with this namespace, which is all together different as well:
> http://www.w3.org/2006/05/addressing/wsdl
> Here is the entire message exchange captured by wireshark:
> ==========================================================
> POST /saas-identity-2.0-CXF-WSDLFirst/services/IdentityService HTTP/1.1
> Content-Type: text/xml; charset=utf-8
> SOAPAction: "http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"
> Host: ad1vm-saasdev
> Content-Length: 695
> Expect: 100-continue
> Connection: Keep-Alive
> HTTP/1.1 100 Continue
> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:a="http://www.w3.org/2005/08/addressing"><s:Header><a:Action
> s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</a:Action><a:MessageID>urn:uuid:c211d39e-e26b-4345-8c4a-a5c931ec210d</a:MessageID><a:To
>
> s:mustUnderstand="1">http://ad1vm-saasdev/saas-identity-2.0-CXF-WSDLFirst/services/IdentityService</a:To></s:Header><s:Body><CreateSequence
>
> xmlns="http://schemas.xmlsoap.org/ws/2005/02/rm"><AcksTo><a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address></AcksTo><Offer><Identifier>urn:uuid:a7418b78-869a-4dcf-a99e-3ebdbc5e6862</Identifier></Offer></CreateSequence></s:Body></s:Envelope>HTTP/1.1
> 200 OK
> Date: Fri, 30 Nov 2007 16:42:27 GMT
> Server: Microsoft-IIS/6.0
> X-Powered-By: ASP.NET
> X-Powered-By: Servlet 2.4; JBoss-4.2.0.GA (build: SVNTag=JBoss_4_2_0_GA
> date=200705111440)/Tomcat-5.5
> SOAPAction: "http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence"
> Content-Type: text/xml;charset=utf-8
> Content-Length: 538
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><MessageID
>
> xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">urn:uuid:297a0df9-d5d6-4ff9-850d-7ff7a9740178</MessageID><RelatesTo
> xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> RelationshipType="reply">urn:uuid:c211d39e-e26b-4345-8c4a-a5c931ec210d</RelatesTo><Action
>
> xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing">http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse</Action></soap:Header><soap:Body
> /></soap:Envelope>
> ==========================================================
> A "patch" for this issue already exists in JIRA - but it doesn't seem to
> work. Looking at the code around the patch, there are explicit calls to
> classes in the org.apache.cxf.ws.addressing.v200408 package.
> https://issues.apache.org/jira/browse/CXF-1216
> The class in question is org/apache/cxf/ws/addressing/VersionTransformer.java
> It is located in \rt\ws\addr\src\main\java
> It uses many classes in the org.apache.cxf.ws.addressing.v200408 package to
> construct the returned objects. This should really be upgraded to a newer
> namespace.
> In order to be compatible with WCF, the new namespace for addressing should
> be at a minimum: http://www.w3.org/2005/08/addressing
> I am sure the fix will entail upgrading the package of classes found in:
> org.apache.cxf.ws.addressing.v200408
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.