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> -- Daniel Kulp [email protected] http://www.dankulp.com/blog
