if you use the destinationOperation attribute on the activationSpec,
you will be able to specify the qname using the following syntax:
<sm:activationSpec xmlns:myns="urn:myuri"
destinationOperation="myns:myOperation" ...
Cheers,
Guillaume Nodet
Pepe Lorenzo wrote:
Hi
I'm new to ServiceMix. I'm trying to get following scenario working:
A jms component listens to a topic and sends the message content
to a webservice, which is binded with the WSIFBinding component.
As webservice runs an example (echo) from axis.
If I send a jms message, the listener gets the input and tries
to forward it to the webservice. The problem is now,
that WSIF component cant match the destination operation due to
namespace conflicts.
I looked at the source code. the class
org.servicemix.components.wsif.WSIFOperationMap
compares in getOperation(QName ...) the value of the activationSpec
attribute
desinationOperation ("echoString") with the key in operationMap.
How can I set the Namespace, so that it will be include as Key in the
Map?
Or did I miss something?
PS: If I set xmlns="" a default Namespace will be included.
Thanks
pepe
JVM: Sun 1.5.0_06
ServiceMix: 2.0.2
Axis: 1.3
tomcat: 5.5.12
here my config:
<sm:activationSpec componentName="echoString"
service="my:echoString" operation="echoString" >
<sm:component>
<bean
class="org.servicemix.components.wsif.WSIFBinding">
<property name="definitionResource"
value="http://localhost:8080/axis/services/echo?wsdl"/>
</bean>
</sm:component>
</sm:activationSpec>
<!-- Subscribe to a JMS destination -->
<sm:activationSpec componentName="inputReceiver"
service="my:inputReceiver" destinationService="my:echoString"
destinationOperation="echoString"
xmlns="http://soapinterop.org">
<sm:component>
<bean xmlns="http://xbean.org/schemas/spring/1.0"
class="org.servicemix.components.jms.JmsInUsingJCABinding">
<property name="jcaContainer" ref="jencks"/>
<property name="activationSpec">
<bean
class="org.activemq.ra.ActiveMQActivationSpec">
<property name="destination"
value="test.source"/>
<property name="destinationType"
value="javax.jms.Topic"/>
</bean>
</property>
</bean>
</sm:component>
</sm:activationSpec>
the error stacktrace:
org.servicemix.jbi.NoSuchOperationException: No such operation name:
{http://soapinterop.org}echoString
at
org.servicemix.components.wsif.WSIFOperationMap.getOperationForExchange(WSIFOperationMap.java:61)
at
org.servicemix.components.wsif.WSIFBinding.transform(WSIFBinding.java:147)
at
org.servicemix.components.util.TransformComponentSupport.onMessageExchange(TransformComponentSupport.java:50)
at
org.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:588)
at
org.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:171)
at
org.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:225)
at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
Source)
at java.lang.Thread.run(Thread.java:595)