Configure with Spring for the simple front end server

You can configure the CXF simple front end server endpoint by using the <simple:server> tag in the spring.

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:simple="http://cxf.apache.org/simple"
      xmlns:soap="http://cxf.apache.org/bindings/soap"
      xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">

  <simple:server id="pojoservice" serviceClass="demo.hw.server.HelloWorld" address="/hello_world">
  	<simple:serviceBean>
  		<bean class="demo.hw.server.HelloWorldImpl" />
  	</simple:serviceBean>
  </simple:server>
</beans>

The simple:server element supports many additional attributes:

Name Value
endpointName The endpoint name this service is implementing, it maps to the wsdl:port@name. In the format of "ns:ENDPOINT_NAME" where ns is a namespace prefix valid at this scope.
serviceName The service name this service is implementing, it maps to the wsdl:service@name. In the format of "ns:SERVICE_NAME" where ns is a namespace prefix valid at this scope.
wsdlLocation The location of the WSDL. Can be on the classpath, file system, or be hosted remotely.
bindingId The binding uri for the service model to use
transportId The transport uri which is used for looking up the transport factory in CXF
address The service publish address
bus The bus name that will be used in the jaxws endpoint.
serviceBean The implementor of jaxws endpoint. You can specify the implementor class name here, or just the ref bean name in the format of "#REF_BEAN_NAME"
serviceClass The implementor class name, it is really useful when you specify the implementor with the ref bean which is wrapped by using Spring AOP
start Whether the service endpoint should be published now, or whether it will be published at a later point, the default value is true

It also supports many child elements:

Name Value
simple:executor A Java executor which will be used for the service. This can be supplied using the Spring <bean class="MyExecutor"/> syntax.
simple:inInterceptors The incoming interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:inFaultInterceptors The incoming fault interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:outInterceptors The outgoing interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:outFaultInterceptors The outgoing fault interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:properties A properties map which should be supplied to the JAX-WS endpoint. See below.
simple:dataBinding You can specify the which DataBinding will be use in the endpoint , This can be supplied using the Spring <bean class="MyDataBinding"/> syntax.
simple:binding You can specify the BindingFactory for this endpoint to use. This can be supplied using the Spring <bean class="MyBindingFactory"/> syntax.
simple:features The features that hold the interceptors for this endpoint. A list of <bean>s or <ref>s
simple:invoker The invoker which will be supplied to this endpoint. This can be supplied using the Spring <bean class="MyInvoker"/> syntax.
simple:schemaLocations The schema locations for endpoint to use. A list of <schemaLocation>s
simple:serviceFactory The service factory for this endpoint to use. This can be supplied using the Spring <bean class="MyServiceFactory"/> syntax
simple:serviceBean The service implementation instance to be used. This can be supplied using the Spring <bean class="MyServiceBean"/> syntax

Here is a more advanced example which shows how to provide interceptors and properties:

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:simple="http://cxf.apache.org/simple"
      xmlns:soap="http://cxf.apache.org/bindings/soap"
      xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">

    <simple:server id="inlineInvoker" 
    serviceClass="org.apache.cxf.service.factory.HelloServiceImpl"
    address="http://localhost:8080/simpleWithAddress">
    <simple:invoker>
      <bean class="org.apache.cxf.service.invoker.BeanInvoker">
        <constructor-arg>
          <bean class="org.apache.cxf.service.factory.HelloServiceImpl"/>
        </constructor-arg>
      </bean>
    </simple:invoker>    
  </simple:server>
  
  <simple:server id="inlineSoapBinding" 
    serviceClass="org.apache.cxf.service.factory.HelloService"
    serviceBean="#greeter"
    address="http://localhost:8080/test"   
    serviceName="t:HelloService"
    xmlns:t="http://apache.org/hello_world_soap_http"
    endpointName="t:HelloPort"
    >
    <simple:binding>
      <soap:soapBinding mtomEnabled="true" version="1.2"/>
    </simple:binding>
  </simple:server>
</beans>

Configure with Spring for the simple front end client

You could use the <simple:client> element to configure the simple front end client, you can use the spring's getBean API to get the client instance from the application context.

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:simple="http://cxf.apache.org/simple"
      xmlns:soap="http://cxf.apache.org/bindings/soap"
      xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">

  <simple:client id="client" 
    serviceClass="org.apache.cxf.service.factory.HelloService"
    address="http://localhost:9000/foo2"
    serviceName="s:XMLService"
    xmlns:s="http://apache.org/hello_world_soap_http"
    endpointName="s:XMLPort"    
    bindingId="http://cxf.apache.org/bindings/xformat"/>
</beans>

The simple:client element supports many additional attributes:

Name Value
endpointName The endpoint name this service is implementing, it maps to the wsdl:port@name. In the format of "ns:ENDPOINT_NAME" where ns is a namespace prefix valid at this scope.
serviceName The service name this service is implementing, it maps to the wsdl:service@name. In the format of "ns:SERVICE_NAME" where ns is a namespace prefix valid at this scope.
wsdlLocation The location of the WSDL. Can be on the classpath, file system, or be hosted remotely.
bindingId The binding uri for the service model to use
address The service publish address
bus The bus name that will be used in the jaxws endpoint.
serviceClass The implementor class name.
username The user name which is used in the transport layer
password The password that is used in the transport layer

It also supports many child elements:

Name Value
simple:inInterceptors The incoming interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:inFaultInterceptors The incoming fault interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:outInterceptors The outgoing interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:outFaultInterceptors The outgoing fault interceptors for this endpoint. A list of <bean>s or <ref>s.
simple:properties A properties map which should be supplied to the JAX-WS endpoint. See below.
simple:dataBinding You can specify the which DataBinding will be use in the endpoint , This can be supplied using the Spring <bean class="MyDataBinding"/> syntax.
simple:binding You can specify the BindingFactory for this endpoint to use. This can be supplied using the Spring <bean class="MyBindingFactory"/> syntax.
simple:features The features that hold the interceptors for this endpoint. A list of <bean>s or <ref>s
simple:conduitSelector The conduit selector which is strategy for retreival of a conduit to mediate an outbound message to be injected into the client.

Here is a more advanced example which shows how to provide interceptors and properties:

<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:simple="http://cxf.apache.org/simple"
      xmlns:soap="http://cxf.apache.org/bindings/soap"
      xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
http://cxf.apache.org/simple http://cxf.apache.org/schemas/simple.xsd">

  <bean id="saajIn" class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
  <bean id="saajOut" class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/>
  
  <simple:client id="client1" 
    serviceClass="org.apache.cxf.service.factory.HelloService"
    address="http://localhost:9000/foo"
    serviceName="s:SOAPService"
    xmlns:s="http://apache.org/hello_world_soap_http">
    <simple:binding>
      <soap:soapBinding mtomEnabled="true" version="1.2"/>
    </simple:binding>
    <simple:inInterceptors>
	  <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
	  <ref bean="saajIn"/>
	</simple:inInterceptors>
	<simple:outInterceptors>
	  <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
	  <ref bean="saajOut"/>
	</simple:outInterceptors>
    <simple:conduitSelector>
      <bean class="org.apache.cxf.endpoint.NullConduitSelector"/>
    </simple:conduitSelector>
  </simple:client>
</beans>