...
Info | ||
---|---|---|
| ||
Currently only SOAP 1.1 is supported by default. SOAP 1.2 is supported from Camel 2.11 onwards. |
Tip | ||
---|---|---|
| ||
See JAXB for details how you can control namespace prefix mappings when marshalling using SOAP data format. |
ElementNameStrategy
An element name strategy is used for two purposes. The first is to find a xml element name for a given object and soap action when marshaling the object into a SOAP message. The second is to find an Exception class for a given soap fault name.
...
Tip | ||
---|---|---|
| ||
As the SOAP dataformat inherits from the JAXB dataformat most settings apply here as well |
Using SOAP 1.2
Available as of Camel 2.11
Code Block |
---|
SoapJaxbDataFormat soap = new SoapJaxbDataFormat("com.example.customerservice", new ServiceInterfaceStrategy(CustomerService.class));
soap.setVersion("1.2");
from("direct:start")
.marshal(soap)
.to("jms:myQueue");
|
When using XML DSL there is a version attribute you can set on the <soapjaxb> element.
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- Defining a ServiceInterfaceStrategy for retrieving the element name when marshalling -->
<bean id="myNameStrategy" class="org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy">
<constructor-arg value="com.example.customerservice.CustomerService"/>
<constructor-arg value="true"/>
</bean>
|
And in the Camel route
Code Block | ||||
---|---|---|---|---|
| ||||
<route>
<from uri="direct:start"/>
<marshal>
<soapjaxb contentPath="com.example.customerservice" version="1.2" elementNameStrategyRef="myNameStrategy"/>
</marshal>
<to uri="jms:myQueue"/>
</route>
|
Multi-part Messages
Available as of Camel 2.8.1
...