Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

You can use the servicemix-cxf-se-service-unit archetype to create a CXF SE Service Unit (including a simple sample POJO):

Code Block
mvn archetype:create \
  -DarchetypeGroupId=org.apache.servicemix.tooling \
  -DarchetypeArtifactId=servicemix-cxf-se-service-unit \
  -DarchetypeVersion=2010.01 \
  -DgroupId=your.group.id \
  -DartifactId=your.artifact.id \
  -Dversion=your-version

Once you've customized the service unit, simply install the SU:

Code Block

mvn install
Info

Remember that to be deployable in ServiceMix, the ServiceUnit has to be embedded in a Service Assembly: only the Service Assembly zip file can be deployed in ServiceMix.
To add your SU in a SA, you need to define it in the dependency sets:

Code Block

<dependency>
  <groupId>your.group.id</groupId>
  <artifactId>your.artifact.id</artifactId>
  <version>your-version</version>
</dependency>

Endpoint Configuration

The CXF SE endpoint provides a property named pojo. You can expose any POJO which contains the @WebService annotation.

...

Code Block
langxml
<cxfse:endpoint>
  <cxfse:pojo>
     <bean class="org.apache.servicemix.cxfse.GreeterImplForClientProxy">
       <property name="calculator">
          <cxfse:proxy service="calculator:CalculatorService" context="#context" type="org.apache.cxf.calculator.CalculatorPortType" />
       </property>
     </bean>
 </cxfse:pojo>
</cxfse:endpoint>
Info
titleEndpoint attributesAttributes
borderStylesolidbgColor='lightblue'

Name

Type

Description

Required

endpoint

String

JBI Endpoint name

no (will be auto-generated if not specified)

interfaceName

QName

Interface QName implemented by the JBI endpoint

no (will be auto-generated if not specified)

mtomEnabled

boolean

Enable MTOM / attachment support

no (defaults to false)

pojo

Object

the instanciated POJO to service requests

one of pojo or pojoClass

service

QName

JBI Service name

no (will be auto-generated if not specified)

useJBIWrapper

boolean

Specifies if the endpoint expects to receive the JBI wrapper in the message received from the NMR

no (defaults to true,Ignore the value of useSOAPEnvelope if useJBIWrapper is true)

useSOAPEnvelope

boolean

Specifies if the endpoint expects soap messages when useJBIWrapper is false

no (defaults to true)

useXmlBeans

boolean

Specifies if the endpoint use xmlbeans databinding to marshell/unmarshell message

no (defaults to false)

useAegis

boolean

Specifies if the endpoint use aegis databinding to marshell/unmarshell message

no (defaults to false), generally we use aegis databinding with simple frontend

pojoService

QName

Specifies the servicemodel service name generated from the pojo

no (will be auto-generated if not specified)

pojoEndpoint

QName

Specifies the servicemodel endpoint name generated from the pojo

no (will be auto-generated if not specified) pojoService and pojoEndpoint can control the servicemodel generated from pojo, it's equivalent to the annotation in java code, but it's useful when you can't change the java code

...

MTOM is supported for the following classes:

  • DataSource
  • DataHandler
  • Wiki Markupbyte\[\]

If you have a bean with the following method:

...

Code Block
langxml
<cxfse:endpoint>
  <cxfse:pojo>inFaultInterceptors>
    <bean class="org.apache.cxf.calculatorinterceptor.CalculatorImplLoggingInInterceptor"/>
    </bean>
  </cxfse:pojo>inFaultInterceptors>
  <cxfse:inInterceptors>
    <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
  </cxfse:inInterceptors>
  <cxfse:outInterceptors>outFaultInterceptors>
    <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
  </cxfse:outInterceptors>outFaultInterceptors>
  <cxfse:inFaultInterceptors>outInterceptors>
    <bean class="org.apache.cxf.interceptor.LoggingInInterceptorLoggingOutInterceptor"/>
  </cxfse:inFaultInterceptors>outInterceptors>
  <cxfse:outFaultInterceptors>pojo>
    <bean class="org.apache.cxf.interceptorcalculator.LoggingOutInterceptor"/>CalculatorImpl">
    </bean>
  </cxfse:outFaultInterceptors>pojo>
</cxfse:endpoint>

Can find document for CXF interceptors here