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.