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

Reply via email to