Hi, There is an issue in the way how the current WS-RM implementation downgrades the WS-A namespace/constants to the 2004/08 version. I would like to first explain the problem and ask you which solution is preferred.
CXF uses WS-A 2005/08 internally but for WS-RM, it uses the 2004/08 version because the older WS-RM (1.0) requires the use of the 2004/08 version. So, it is correct to convert the internally used 2005/08 namespace/constants to their 2004/08 counterparts. However, one problem is that the 2005/08 WS-A spec defined two constants http://www.w3.org/2005/08/addressing/anonymous http://www.w3.org/2005/08/addressing/none While the 2004/08 WS-A version seems to have only defined http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous and not http://schemas.xmlsoap.org/ws/2004/08/addressing/role/none The current conversion used in CXF creates this undefined value and this is causing some interoperability issues. More concretely, when the WS-A ReplyTo element is set to the none value and this is serialized into the above undefined 2004/08 none constant, it is not recognized by some systems. According to the WS-RM 1.0, in such a case, the ReplyTo element should be omitted to convey this "none" value (as there is no "none" constant). Technically, this is simple to fix and I tested my fix locally. But I would like to hear if this is the preferred solution. My solution was to introduce a boolean property "usingNoneAddress" to the addressing configuration bean. If this property is set to false, the above none constant is not serialized (i.e., the enclosing element is omitted). Alternatively, we can always omit serializing the elements containing the above "none" constant without using any configurable option. But I was not sure if someone is expecting this invalid "none" constant in their "non-conformal" implementation. In this case, simply omitting the elements may break their running scenarios. Any feedback is appreciated. Thanks. Regards, aki
