...
You can add items to both of these property sets via the JAXBDataBinding class. The 'contextProperties' and 'marshallerProperties' properties (in the Spring sense) of JAXBDataBinding each store a Map<String, Object>. Whatever you put in the map, CXF will pass along to JAXB. See the JAXB documentation for details.
Code Block |
| title |
Example of Configuring a Context Property |
| xml:title |
Example of Configuring a Context Property |
|
|
<jaxws:server id="bookServer"
serviceClass="org.myorg.mytypes.AnonymousComplexTypeImpl"
address="http://localhost:8080/act"
bus="cxf">
<jaxws:invoker>
<bean class="org.apache.cxf.service.invoker.BeanInvoker">
<constructor-arg>
<bean class="org.myorg.mytypes.AnonymousComplexTypeImpl"/>
</constructor-arg>
</bean>
</jaxws:invoker>
<jaxws:dataBinding>
<bean class="org.apache.cxf.jaxb.JAXBDataBinding">
<property name="contextProperties">
<map>
<entry>
<key><value>com.sun.xml.bind.defaultNamespaceRemap</value></key>
<value>uri:ultima:thule</value>
</entry>
</map>
</property>
</bean>
</jaxws:dataBinding>
</jaxws:server>
|
...
The JAXB reference implementation allows the application to provide an object that in turn maps namespace URI's to prefixes. You can create such an object and supply it via the marshaller properties. However, CXF provides an easier process. The namespaceMap property of the JAXBDataBinding accepts a Map<String, String>. Think of it as a map from namespace URI to namespace prefix. If you load up this map, CXF will set up the necessary marshaller property for you.
Code Block |
| title |
Example of Configuring a Namespace Mapping |
| xml:title |
Example of Configuring a Namespace Mapping |
|
|
<jaxws:server id="bookServer"
serviceClass="org.myorg.mytypes.AnonymousComplexTypeImpl"
address="http://localhost:8080/act"
bus="cxf">
<jaxws:invoker>
<bean class="org.apache.cxf.service.invoker.BeanInvoker">
<constructor-arg>
<bean class="org.myorg.mytypes.AnonymousComplexTypeImpl"/>
</constructor-arg>
</bean>
</jaxws:invoker>
<jaxws:dataBinding>
<bean class="org.apache.cxf.jaxb.JAXBDataBinding">
<property name="namespaceMap">
<map>
<entry>
<key><value>http://cxf.apache.org/anonymous_complex_type/</value></key>
<value>BeepBeep</value>
</entry>
</map>
</property>
</bean>
</jaxws:dataBinding>
</jaxws:server>
|