In upgrading to 2.2.7, we found that our cxf client's spring configuration would fail on startup with a NAMESPACE_ERR thrown from the writer.
To reproduce, we simply include the following snippet in our client application context:
<bean id="client" factory-bean="clientFactory" factory-method="create" lazy-init="false"/>
<bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsClientFactoryBean" lazy-init="false">
<property name="address" value="http://localhost:8180"/>
<property name="serviceClass" value="org.my.project.MyService"/>
It will fail when it tries to load cxf.xml using the ControlledValidationXmlBeanDefinitionReader.
It appears to occur because the namespace attributes are handed off by W3CDomStreamWriter.writeAttribute with a namespaceURI of null instead of their actual namespace. It seems that either that method isn't the right place to handle namespace attributes, meaning changing something upstream, or that there is a bug in it.