|
Page Edited :
CXF20DOC :
Jax-WS Java First with jms Transport
Jax-WS Java First with jms Transport has been edited by Glen Mazza (Nov 06, 2007). Change summary: Fixed name of configuration file. Download JAX-WS java first sample showing maven build, http and jms transport. This example works almost the same as th JAX WS Java First Example with http. The only two things that are different is that you configure the jms:conduit (JMS Config for client) and jms:endpoint(JMS Config for server) in the cxf.xml. This file will be loaded automatically when cxf starts. Things to consider when doing the jms config:
The address in the proxy factory and server factory has to be set to jms://. The real addess has to be set in the conduit and destination. In fact once all is set up it is quite easy. Only the fact that you have to connect jms:conduit and service by the endpoint name is not very intuitive. You can download the complete example above. Additionally you need the activemq binaries. Start activemq before testing the service. There is no configuration required. cxf.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core" xmlns:soap="http://cxf.apache.org/bindings/soap" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:jms="http://cxf.apache.org/transports/jms" xsi:schemaLocation="http://www.springframework.org/schema/beans [http://www.springframework.org/schema/beans/spring-beans-2.0.xsd] [http://cxf.apache.org/core] [http://cxf.apache.org/schemas/core.xsd] [http://cxf.apache.org/bindings/soap] [http://cxf.apache.org/schema/bindings/soap.xsd] [http://cxf.apache.org/jaxws] [http://cxf.apache.org/schemas/jaxws.xsd] [http://cxf.apache.org/transports/jms] [http://cxf.apache.org/schemas/configuration/jms.xsd] ">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-local.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-http.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" />
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
<jms:conduit name="{http://service.test/}IHelloPort.jms-conduit">
<jms:address destinationStyle="queue" jndiConnectionFactoryName="ConnectionFactory"
jndiDestinationName="dynamicQueues/test.cxf.jmstransport.queue" connectionUserName="testUser" connectionPassword="testPassword">
<jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61616" />
</jms:address>
</jms:conduit>
<jms:destination name="{http://service.test/}IHelloPort.jms-destination">
<jms:address destinationStyle="queue" jndiConnectionFactoryName="ConnectionFactory" jndiDestinationName="dynamicQueues/test.cxf.jmstransport.queue"
connectionUserName="testUser" connectionPassword="testPassword">
<jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" />
<jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61616" />
</jms:address>
</jms:destination>
</beans>
Server: Object implementor = new Hello();
JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
svrFactory.setServiceClass(IHello.class);
svrFactory.setAddress("jms://");
svrFactory.setServiceBean(implementor);
svrFactory.getInInterceptors().add(new LoggingInInterceptor());
svrFactory.getOutInterceptors().add(new LoggingInInterceptor());
svrFactory.create();
Client: JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingInInterceptor());
factory.setServiceClass(IHello.class);
factory.setAddress("jms://");
IHello client = (IHello) factory.create();
|
Unsubscribe or edit your notifications preferences
