Thanks for the feedback. I have included the cxf-entension-jms.xml. I'll try to break this down into a project that I can distribute. Unfortunately there are several layers of pom.xml abstraction that I'm using so publishing something that's easily built will be a challenge. I'll try to break this down into a simple example and publish that. In the mean time, are there any samples out there that I could download and test locally?
Thanks, John liucong wrote: > > Hi > I'm working on JMS-URI. And JMS-URI will work for SOAP/JMS > specification implementation. > You can publish the endpoint through a JMS URI and don't need to > touch the WSDL file. > > Best regards, > Liu > > Christian Schneider : >> Hi Willem, >> >> yes, the JMS-URI is great. I guess Liu will work on this. >> >> I have tested what happens if you leave out the import. But I did not >> get the same error John was experiencing so probably this is not the >> problem. >> >> When all is configured correctly it should work fine with >> jaxws:endpoint. It should be enough to set the address to jms:// to >> mark define that it should use the jms code. >> >> Greetings >> >> Christian >> >> Willem Jiang schrieb: >>> Just another thought, we could introduce the JMS-URI[1] which is used in >>> soap-jms[2] to cxf-jms transport. In this way we can publish the >>> endpoint by using a single JMS URI without touching any WSDL or the >>> Spring configuration :). >>> >>> [1]http://www.potaroo.net/ietf/idref/draft-merrick-jms-uri/ >>> [2]http://www.w3.org/TR/soapjms/ >>> >>> Willem >>> >>> Willem Jiang wrote: >>> >>>> Hi , >>>> >>>> I think you need to import the jms module in your spring >>>> configuration file >>>> <import resource="classpath:META-INF/cxf/cxf-extension-jms.xml" /> >>>> >>>> and set the endpoint transportId attribute with >>>> "http://cxf.apache.org/transports/jms" >>>> >>>> But I just found current <jaxws:endpoint> doesn't support to set the >>>> transportId, so you need to use <jaxws:server> to walk around this >>>> issue. >>>> >>>> <jaxws:server >>>> xmlns:customer="http://customerservice.example.com/" >>>> id="CustomerService" >>>> address="jms://" >>>> serviceName="customer:CustomerServiceService" >>>> endpointName="customer:CustomerServiceEndpoint" >>>> >>>> serviceClass="com.example.customerservice.impl.CustomerServiceImpl"> >>>> <jaxws:features> >>>> <bean >>>> class="org.apache.cxf.transport.jms.JMSConfigFeature" >>>> p:jmsConfig-ref="jmsConfig" /> >>>> </jaxws:features> >>>> </jaxws:server> >>>> >>>> Willem >>>> >>>> jp4 wrote: >>>> >>>>> Christian, >>>>> >>>>> This is exactly what I have been attempting to do, and based on >>>>> examples and >>>>> the documentation it was unclear to me whether or not this should >>>>> work. I >>>>> already have service interfaces that have been generated by >>>>> wsdl2java as >>>>> well as Impl classes. The Impl classes are already configured as >>>>> spring >>>>> beans so I'd prefer to use the existing beans for both jms and http >>>>> processing if possible. I uploaded my latest configuration to this >>>>> thread >>>>> earlier, but I still haven't been able to get it to work. I >>>>> believe the >>>>> crux of the problem is that the destination that is being passed to >>>>> the >>>>> JMSConfig is an instance of ServletDestination rather than an >>>>> actual JMS >>>>> Destination. I'm hoping it's a simple config issue. Any >>>>> suggestions would >>>>> be greatly appreciated. >>>>> >>>>> Thanks, >>>>> >>>>> John >>>>> >>>>> Christian Schneider wrote: >>>>> >>>>>> Hi John and Dan, >>>>>> >>>>>> it is possible to publish a jms endpoint with a wsdl that does not >>>>>> contain jms information. >>>>>> You can use the wsdl with http information to generate the java >>>>>> code and then setup the jms endpoint with a spring config. It is >>>>>> even possible to work without a wsdl by using >>>>>> the jaxws annotations. >>>>>> >>>>>> Basically you simply need a jaxws:endpoint: >>>>>> >>>>>> <jaxws:endpoint >>>>>> xmlns:customer="http://customerservice.example.com/" >>>>>> id="CustomerService" >>>>>> address="jms://" >>>>>> serviceName="customer:CustomerServiceService" >>>>>> endpointName="customer:CustomerServiceEndpoint" >>>>>> >>>>>> implementor="com.example.customerservice.impl.CustomerServiceImpl"> >>>>>> <jaxws:features> >>>>>> <bean >>>>>> class="org.apache.cxf.transport.jms.JMSConfigFeature" >>>>>> p:jmsConfig-ref="jmsConfig" /> >>>>>> </jaxws:features> >>>>>> </jaxws:endpoint> >>>>>> >>>>>> serviceName and endpointName can be set to any values. The whole >>>>>> jms config is done in the jmsConfig bean. >>>>>> >>>>>> <bean >>>>>> id="jmsConfig" >>>>>> class="org.apache.cxf.transport.jms.JMSConfiguration" >>>>>> p:useJms11="true" >>>>>> p:connectionFactory-ref="jmsConnectionFactory" >>>>>> p:targetDestination="test.cxf.jmstransport.queue" /> >>>>>> >>>>>> <bean >>>>>> id="jmsConnectionFactory" >>>>>> class="org.apache.activemq.ActiveMQConnectionFactory"> >>>>>> <property >>>>>> name="brokerURL" >>>>>> value="tcp://localhost:61616" /> >>>>>> </bean> >>>>>> >>>>>> I hope this helps .. greetings >>>>>> >>>>>> Christian >>>>>> >>>>>> Daniel Kulp schrieb: >>>>>> >>>>>>> Not sure it's currently possible without a modified wsdl. I >>>>>>> think the transport factory is chosen from the extensor in the >>>>>>> service/port and the "soap" extensor maps to the soap transport >>>>>>> which I think would just know >>>>>>> about http as it would look at the transport id on the >>>>>>> soap:binding thing in >>>>>>> the binding. (would need to double check that) >>>>>>> >>>>>>> You could TRY setting a unique (fake) serviceName/endpointName >>>>>>> (probably >>>>>>> just the endpointName) and seeing if the runtime would create a >>>>>>> new one for >>>>>>> it. I'm not sure if that would work though. >>>>>>> >>>>>>> The best option would probably be to create a small wsdl that just >>>>>>> imports the other wsdl and adds a jms service/port. (basically, >>>>>>> a really small >>>>>>> wsdl) >>>>>>> Dan >>>>>>> >>>>>>> >>>>>>> On Fri May 29 2009 1:31:49 pm jp4 wrote: >>>>>>> >>>>>>>> This updated configuration gives the same error. It's almost >>>>>>>> identical >>>>>>>> to >>>>>>>> my HTTP endpoint except for the address and jmsConfig feature... >>>>>>>> Namespaces, wsdl, servicename, and endpoint all match the WSDL >>>>>>>> but I get >>>>>>>> the same error (Caused by: >>>>>>>> org.apache.cxf.configuration.ConfigurationException: You can >>>>>>>> only use >>>>>>>> JMSConfigFeature with the jms transport). Any help would be >>>>>>>> greatly >>>>>>>> appreciated as I'm under some tight deadlines to get this stuff >>>>>>>> working. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> John >>>>>>>> >>>>>>>> <jaxws:endpoint id="JMSSingleSignOnServicesImpl_1_0_0" >>>>>>>> wsdlLocation="SingleSignOn_1_0_0.wsdl" >>>>>>>> serviceName="as:SingleSignOnServicePorts" >>>>>>>> endpointName="as:SingleSignOnService" >>>>>>>> >>>>>>>> xmlns:as="http://www.foo.com/enterpriseservices/accountservices/singlesigno >>>>>>>> >>>>>>>> >>>>>>>> n_1_0_0" address="jms://" >>>>>>>> implementor="#singleSignOnServicesImpl_1_0_0"> >>>>>>>> <jaxws:features> >>>>>>>> <bean >>>>>>>> class="org.apache.cxf.transport.jms.JMSConfigFeature" >>>>>>>> p:jmsConfig-ref="jmsConfig" /> >>>>>>>> </jaxws:features> >>>>>>>> </jaxws:endpoint> >>>>>>>> >>>>>>>> <bean id="wrappedConnectionFactory" >>>>>>>> class="org.springframework.jms.connection.SingleConnectionFactory"> >>>>>>>> <property name="targetConnectionFactory"> >>>>>>>> <bean >>>>>>>> class="org.apache.activemq.ActiveMQConnectionFactory"> >>>>>>>> <property name="brokerURL" >>>>>>>> value="tcp://localhost:61616" /> >>>>>>>> </bean> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> >>>>>>>> <bean id="jndiDestinationResolver" >>>>>>>> class="org.springframework.jms.support.destination.JndiDestinationResolver" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> <property name="jndiTemplate" ref="jndiTemplate"/> >>>>>>>>> >>>>>>>> </bean> >>>>>>>> >>>>>>>> <bean id="jmsConfig" >>>>>>>> class="org.apache.cxf.transport.jms.JMSConfiguration" >>>>>>>> p:connectionFactory-ref="wrappedConnectionFactory" >>>>>>>> p:destinationResolver-ref="jndiDestinationResolver" >>>>>>>> p:targetDestination="accountServicesRequestQueue" >>>>>>>> p:replyDestination="accountServicesResponseQueue"> >>>>>>>> </bean> >>>>>>>> >>>>>>>> <bean id="jndiTemplate" >>>>>>>> class="org.springframework.jndi.JndiTemplate"> >>>>>>>> <property name="environment"> >>>>>>>> <props> >>>>>>>> <prop >>>>>>>> key="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialC >>>>>>>> >>>>>>>> >>>>>>>> ontextFactory</prop> <prop >>>>>>>> key="java.naming.provider.url">tcp://localhost:61616</prop> <!-- >>>>>>>> lets >>>>>>>> register some destinations --> >>>>>>>> <prop >>>>>>>> key="queue.accountServicesRequestQueue">accountServicesRequestQueue</prop> >>>>>>>> >>>>>>>> >>>>>>>> <prop >>>>>>>> key="queue.accountServicesResponseQueue">accountServicesResponseQueue</prop >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> </props> >>>>>>>>> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> >>>>>>>> jp4 wrote: >>>>>>>> >>>>>>>>> I am currently using cxf 2.2. I have several http endpoints >>>>>>>>> (which are >>>>>>>>> generated from wsdl). These endpoints work great since dumping >>>>>>>>> the >>>>>>>>> jboss >>>>>>>>> native stack! >>>>>>>>> >>>>>>>>> Now I'd like one of my endpoints to support both http as well >>>>>>>>> as jms. >>>>>>>>> I've read the cxf docs, but it's unclear whether or not I can >>>>>>>>> do this >>>>>>>>> without modifying the WSDL. Ideally, I'd just like to configure >>>>>>>>> another >>>>>>>>> endpoint which listens on a request queue (and delegates to the >>>>>>>>> endpoint >>>>>>>>> that I have already configured in spring). >>>>>>>>> >>>>>>>>> I have the following configuration which throws the following >>>>>>>>> exception >>>>>>>>> on startup... I have configured the address="jms://". Can anyone >>>>>>>>> point >>>>>>>>> me in the right direction? >>>>>>>>> >>>>>>>>> Thanks, >>>>>>>>> >>>>>>>>> John >>>>>>>>> >>>>>>>>> Caused by: org.apache.cxf.configuration.ConfigurationException: >>>>>>>>> You can >>>>>>>>> only use JMSConfigFeature with the jms transport >>>>>>>>> at >>>>>>>>> org.apache.cxf.transport.jms.JMSConfigFeature.initialize(JMSConfigFeature >>>>>>>>> >>>>>>>>> >>>>>>>>> .java:61) >>>>>>>>> >>>>>>>>> >>>>>>>>> <bean id="wsCtx" >>>>>>>>> class="org.apache.cxf.jaxws.context.WebServiceContextImpl"/> >>>>>>>>> >>>>>>>>> <jaxws:endpoint id="JMSSingleSignOnServicesImpl_1_0_0" >>>>>>>>> address="jms://" >>>>>>>>> >>>>>>>>> implementor="#singleSignOnServicesImpl_1_0_0"> >>>>>>>>> <jaxws:features> >>>>>>>>> <bean >>>>>>>>> class="org.apache.cxf.transport.jms.JMSConfigFeature" >>>>>>>>> p:jmsConfig-ref="jmsConfig" /> >>>>>>>>> </jaxws:features> >>>>>>>>> </jaxws:endpoint> >>>>>>>>> >>>>>>>>> <bean id="jndiConfig" >>>>>>>>> class="org.apache.cxf.transport.jms.JNDIConfiguration"> >>>>>>>>> <property name="environment"> >>>>>>>>> <props> >>>>>>>>> <prop >>>>>>>>> key="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitia >>>>>>>>> >>>>>>>>> >>>>>>>>> lContextFactory</prop> <prop >>>>>>>>> key="java.naming.provider.url">tcp://localhost:61616</prop> >>>>>>>>> </props> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> >>>>>>>>> <bean id="wrappedConnectionFactory" >>>>>>>>> class="org.springframework.jms.connection.SingleConnectionFactory"> >>>>>>>>> >>>>>>>>> <property name="targetConnectionFactory"> >>>>>>>>> <bean >>>>>>>>> class="org.apache.activemq.ActiveMQConnectionFactory"> >>>>>>>>> <property name="brokerURL" >>>>>>>>> value="tcp://localhost:61616" /> >>>>>>>>> </bean> >>>>>>>>> </property> >>>>>>>>> </bean> >>>>>>>>> >>>>>>>>> <bean id="jmsConfig" >>>>>>>>> class="org.apache.cxf.transport.jms.JMSConfiguration" >>>>>>>>> p:jndiConfig-ref="jndiConfig" >>>>>>>>> p:connectionFactory-ref="wrappedConnectionFactory" >>>>>>>>> p:jndiTemplate-ref="jndiTemplate" >>>>>>>>> p:targetDestination="accountServicesRequestQueue" >>>>>>>>> p:replyDestination="accountServicesResponseQueue"> >>>>>>>>> </bean> >>>>>>>>> >>>>>>> >>>>>> -- >>>>>> >>>>>> Christian Schneider >>>>>> --- >>>>>> http://www.liquid-reality.de >>>>>> >>>>>> >>>>>> >>>>>> >>>> >>> >>> >>> >> >> > > > -- View this message in context: http://www.nabble.com/CXF-JMS-Integration-tp23767613p23816093.html Sent from the cxf-user mailing list archive at Nabble.com.
