Hi Sven,
you have to make sure the address is exactly "jms://". This is a marker
to active the jms transport.
I am also not sure what happens if the transport is configured through
the wsdl and through the JmsConfigFeature. You can try to
remove wsdlLocation or remove the Port and Binding for Jms.
Christian
Am 04.05.2011 01:52, schrieb Sven Zethelius:
I'm trying to setup a JMS endpoint, following the directions from
http://cxf.apache.org/docs/using-the-jmsconfigfeature.html, and am running into
an exception.
Is the information on this page still accurate? I ask because in debugging the
initialization, it appears the exception I get happens way before the
JMSConfigFeature ever has the opportunity to initialize, so I don't think the
page works as advertised. The exception is happening during
Destination.activate, which happens before the
AbstractFeature.initialize(Server, Bus), so the feature never has a chance to
provide the config. Do I need to go with the specially named bean approach
instead to configure the JMS endpoint?
Spring file snippet:
<jaxws:endpoint
id="JMS_prototype"
implementor="expedia.cc.samples.sampleservice.v2.contract.SampleServicePortTypeImpl"
wsdlLocation="com.expedia.cc.samples.sampleservice.v2.contract.wsdl"
address="${url}">
<jaxws:features>
<bean class="org.apache.cxf.feature.LoggingFeature"/>
<bean class="org.apache.cxf.transport.jms.JMSConfigFeature">
<property name="jmsConfig" ref="jmsConfig" />
</bean>
</jaxws:features>
</jaxws:endpoint>
Wsdl snippet:
<wsdl:service name="SampleService">
<wsdl:port name="SampleServiceJMSSOAPBinding"
binding="tns:SampleServiceSoapBinding">
<jms:address>
</jms:address>
</wsdl:port>
</wsdl:service>
Exception Snippet:
Caused by: javax.xml.ws.WebServiceException:
org.apache.cxf.configuration.ConfigurationException: Insufficient configuration for
Destination. Did you configure a<jms:destination
name="{urn:expedia:cc:samples:sampleservice:v2:contract}SampleServiceJMSSOAPBinding.jms-destination">
and set the jndiConnectionFactoryName ?
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:343)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:239)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:489)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 17 more
Caused by: org.apache.cxf.configuration.ConfigurationException: Insufficient configuration for
Destination. Did you configure a<jms:destination
name="{urn:expedia:cc:samples:sampleservice:v2:contract}SampleServiceJMSSOAPBinding.jms-destination">
and set the jndiConnectionFactoryName ?
at
org.apache.cxf.transport.jms.JMSConfiguration.ensureProperlyConfigured(JMSConfiguration.java:105)
at
org.apache.cxf.transport.jms.JMSDestination.activate(JMSDestination.java:110)
at
org.apache.cxf.transport.AbstractObservable.setMessageObserver(AbstractObservable.java:48)
at
org.apache.cxf.binding.AbstractBindingFactory.addListener(AbstractBindingFactory.java:181)
at
org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFactory.java:836)
at org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:127)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
... 26 more
--
----
http://www.liquid-reality.de