Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added the simple:client discription

...

Code Block
xml
xml
<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.

Code Block
xml
xml

<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, it is really useful when you specify the implementor with the ref bean which is wrapped by using Spring AOP

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:

Code Block
xml
xml

<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>

Deploying Simple FrontEnd service to a container

...