Re: cxf jms with java first
Hi Christian, Only requirement on the address is that it should start with jms:// rest of the stuff is all ignored currently. All the required stuff is pulled out from jms:address wsdl Extensor which can be configured via configuration the way you did. once you set the address starting with jms:// CXF runtime will find the appropriate transport factor in this case JMSTransportFactory and will inject the Spring config that your xml configuration file. Regards, Ulhas Bhole Christian Schneider wrote: I have found some clues to the necessary configuration. You need to configure a jms:conduit. And of course your JaxWsProxyFactoryBean. But what I did not yet find out is how to connect the two. What I know is that your setAddress Parameter in the factory has to start with jms://. Has anyone an idea how to go on from there? Best regards, Christian mule1 schrieb: Hello, I wanted to configure cxf jms in xml with my java first service implementation. Can you provide me the sample cxf jms configuration? JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.getInInterceptors().add(new LoggingInInterceptor()); factory.getOutInterceptors().add(new LoggingInInterceptor()); factory.setServiceClass(IHello.class); factory.setAddress(jms://{http://service.test/}IHelloService.jms-conduit;); // This dows not seem correct... what is the right address for jms? //factory.setAddress(http://localhost:9000/Hello;); IHello client = (IHello) factory.create(); String reply = client.sayHi(HI); ?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 / jms:conduit name={http://service.test/}IHelloService.jms-conduit; jms:clientConfig clientReceiveTimeout=500 messageTimeToLive=500 / jms:runtimePolicy messageType=binary / jms:sessionPool lowWaterMark=10 highWaterMark=5000 / jms:address destinationStyle=queue jndiConnectionFactoryName=MockConnectionFactory jndiDestinationName=myOwnDestination jndiReplyDestinationName=myOwnReplyDestination 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 /beans IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
Re: cxf jms with java first
AFAIK, that is what you need to do. Setting the factory's address to be the String which start with jms:// will be OK. BTW, you do not need to include the below files in your spring.configuration 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 / And the most important thing is that you need to let this Spring configuration file be load by CXF bus. You can name it as the cxf.xml and put it into the class path, or use the SpringBusFactory to load it. Willem. Christian Schneider wrote: I have found some clues to the necessary configuration. You need to configure a jms:conduit. And of course your JaxWsProxyFactoryBean. But what I did not yet find out is how to connect the two. What I know is that your setAddress Parameter in the factory has to start with jms://. Has anyone an idea how to go on from there? Best regards, Christian mule1 schrieb: Hello, I wanted to configure cxf jms in xml with my java first service implementation. Can you provide me the sample cxf jms configuration? JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.getInInterceptors().add(new LoggingInInterceptor()); factory.getOutInterceptors().add(new LoggingInInterceptor()); factory.setServiceClass(IHello.class); factory.setAddress(jms://{http://service.test/}IHelloService.jms-conduit;); // This dows not seem correct... what is the right address for jms? //factory.setAddress(http://localhost:9000/Hello;); IHello client = (IHello) factory.create(); String reply = client.sayHi(HI); ?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 / jms:conduit name={http://service.test/}IHelloService.jms-conduit; jms:clientConfig clientReceiveTimeout=500 messageTimeToLive=500 / jms:runtimePolicy messageType=binary / jms:sessionPool lowWaterMark=10 highWaterMark=5000 / jms:address destinationStyle=queue jndiConnectionFactoryName=MockConnectionFactory jndiDestinationName=myOwnDestination jndiReplyDestinationName=myOwnReplyDestination 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 /beans
Re: cxf jms with java first
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
Re: cxf jms with java first
I also want to use java first with jms. Perhaps we can coordinate efforts. Have you come any further? Best regards Christian mule1 schrieb: Hello, I wanted to configure cxf jms in xml with my java first service implementation. Can you provide me the sample cxf jms configuration? -- Christian Schneider --- http://www.liquid-reality.de
Re: cxf jms with java first
Hi, You can find more information about the JMS configuration here [1][2] CXF wiki [1]http://cwiki.apache.org/CXF20DOC/jms-transport.html Unit test configuration [2]https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/transports/jms/src/test/resources/jms_test_config.xml Willem. mule1 wrote: Hello, I wanted to configure cxf jms in xml with my java first service implementation. Can you provide me the sample cxf jms configuration? -- View this message in context: http://www.nabble.com/cxf-jms-with-java-first-tf4664613.html#a13325248 Sent from the cxf-user mailing list archive at Nabble.com.