You can configure the CXF simple front end server endpoint by using the <simple:server> tag in spring.
xsi:schemaLocation="
http:
http:
http:
<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:
xsi:schemaLocation="
http:
http:
http:
<simple:server id= "inlineInvoker"
serviceClass= "org.apache.cxf.service.factory.HelloServiceImpl"
<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"
serviceName= "t:HelloService"
endpointName= "t:HelloPort" >
<simple:binding>
<soap:soapBinding mtomEnabled= "true" version= "1.2" />
</simple:binding>
</simple:server>
</beans>
|
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.
xsi:schemaLocation="
http:
http:
http:
<simple:client id= "client"
serviceClass= "org.apache.cxf.service.factory.HelloService"
serviceName= "s:XMLService"
endpointName= "s:XMLPort"
</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:
xsi:schemaLocation="
http:
http:
http:
<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"
serviceName= "s:SOAPService"
<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>
|