= TomEE and CXF Configuration
:jbake-date: 2016-03-16
:jbake-type: page
:jbake-status: published
:jbake-tomeepdf:

TomEE relies on Apache CXF for JAX-WS and JAX-RS, it doesn't provides all CXF modules but most comomn
ones for both specifications (JAX-RS is part of all distributions but JAX-WS is only part of plus one).

== Configuration

CXF API is reusable but you can also configure the interceptors through `openejb-jar.xml` (located in WEB-INF).

If you want to configure JAX-RS you will use the prefix `cxf.jaxrs` and if you configure JAX-WS you use `cxf.jaxws` prefix.

TIP: to configure directly the bus use `org.apache.openejb.cxf.bus.` prefix and configure it in `conf/system.properties`.

To configure JAX-RS you need to add in `openejb-jar.xml` a `pojo-deployment`:

[source,xml]
----
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar>
 <pojo-deployment class-name="jaxrs-application">
   <properties>
     # here will go the config
   </properties>
 </pojo-deployment>
</openejb-jar>
----

For JAX-WS you will use a `pojo-deployment` matching the webservice class name for POJO webservices
or an `ejb-deployment` instead of a `pojo-deployment` for EJB webservices:


[source,xml]
----
<?xml version="1.0" encoding="UTF-8"?>
<openejb-jar>
 <ejb-deployment ejb-name="MyEJBWebService">
   <properties>
     # here will go the config
   </properties>
 </ejb-deployment>
</openejb-jar>
----

Then once you selected your prefix and know where to write the config just use the following entries:

- properties: server factory properties
- features: CXF features
- in-interceptors: CXF in interceptors
- out-interceptors: CXF out interceptors
- in-fault-interceptors: CXF in interceptors for fault handling
- out-fault-interceptors: CXF out interceptors for fault handling
- databinding: server databinding
- providers (only for JAX-RS endpoint): list of JAX-RS providers
- skip-provider-scanning (only for JAX-RS): is provider scanning on or not (default true)

For features and interceptors the rule is the same: value is a list comma separated. Each value of the list is either a qualified class name or an id of a service in resources.xml.

Databinding is simply either a qualified name or a service id in resources.xml (located in WEB-INF).

== Sample for JAX-WS

To configure WSS4J on the EJB `CalculatorBean` for instance add in openejb-jar.xml:

[source,xml]
----
<openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1">
  <ejb-deployment ejb-name="CalculatorBean">
    <properties>
      cxf.jaxws.in-interceptors = wss4j
    </properties>
  </ejb-deployment>
</openejb-jar>
----

With associated resources.xml which will define precisely the `wss4j` configuration:

[source,xml]
----
<resources>
  <Service id="wss4j" class-name="org.apache.openejb.server.cxf.config.WSS4JInInterceptorFactory" factory-name="create">
    action = UsernameToken
    passwordType = PasswordText
    passwordCallbackClass = org.superbiz.ws.security.PasswordCallbackHandler
  </Service>
</resources>
----

== Sample for JAX-RS

link:../json/index.html[JAX-RS JSON] page shows a sample dedicated to JAX-RS.
