I have the example running ... phew ... That was some work. After some
cleanup I will write a wiki page about my example.
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.
I would like to have a property inside the JaxWsServerFactoryBean where
I can simply set the transport to a jms conduit. This would be much clearer.
In the dev list I read that someone works on the spring jms config..
This would be much help.
I used the following cxf.xml and code for server and client.
Best regards and thanks for your help,
Christian
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:clientConfig clientReceiveTimeout="500"
messageTimeToLive="500" />
<jms:runtimePolicy messageType="binary" />
<jms:sessionPool lowWaterMark="10" highWaterMark="5000" />
-->
<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:clientConfig clientReceiveTimeout="500"
messageTimeToLive="500" />
<jms:runtimePolicy messageType="binary" />
<jms:sessionPool lowWaterMark="10" highWaterMark="5000" />
-->
<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();
---------------------------
--
Christian Schneider
---
http://www.liquid-reality.de