What version of ActiveMQ are you using as the JMS client?
I would suggest using the same version as SMX for now. Which I think is
the 4.1 branch...
smilingsky wrote:
Hello all,
I'm still a newbie to Servicemix. I am trying to make the JMS component work
and have a JMS client send message to it. But I always get the following
errors when I execute my JMS client:
--------------------------------------------------------------------
Exception in thread "main" java.lang.NoSuchMethodError:
org.apache.activemq.command.ConnectionInfo.isClientMaster()Z
at
org.apache.activemq.openwire.v2.ConnectionInfoMarshaller.tightMarshal1(ConnectionInfoMarshaller.java:107)
at
org.apache.activemq.openwire.OpenWireFormat.marshal(OpenWireFormat.java:234)
at
org.apache.activemq.transport.tcp.TcpTransport.oneway(TcpTransport.java:124)
at
org.apache.activemq.transport.InactivityMonitor.oneway(InactivityMonitor.java:141)
at
org.apache.activemq.transport.TransportFilter.oneway(TransportFilter.java:78)
at
org.apache.activemq.transport.WireFormatNegotiator.oneway(WireFormatNegotiator.java:77)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:44)
at
org.apache.activemq.transport.ResponseCorrelator.asyncRequest(ResponseCorrelator.java:68)
at
org.apache.activemq.transport.ResponseCorrelator.request(ResponseCorrelator.java:73)
at
org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1131)
at
org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1219)
at
org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:272)
at com.abacus.rtdemo.rtdemoclient.JMSClient.main(JMSClient.java:46)
Exception in thread "ActiveMQ Transport: tcp://localhost/127.0.0.1:61616"
java.lang.AbstractMethodError:
org.apache.activemq.openwire.v2.BrokerInfoMarshaller.tightUnmarshal(Lorg/apache/activemq/openwire/OpenWireFormat;Ljava/lang/Object;Ljava/io/DataInputStream;Lorg/apache/activemq/openwire/BooleanStream;)V
at
org.apache.activemq.openwire.OpenWireFormat.doUnmarshal(OpenWireFormat.java:350)
at
org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:276)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:142)
at java.lang.Thread.run(Thread.java:619)
--------------------------------------------------------------------
I installed the Servicemix-JMS component and deploy the following
configuration:
--------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
xmlns:jms="http://servicemix.apache.org/jms/1.0"
xmlns:rtdemo="http://rtdemo.abacus.com/rtdemo">
<!-- JMS POLLER - CONSUMER -->
<jms:endpoint service="rtdemo:MyConsumer" endpoint="MyConsumer"
targetService="rtdemo:MyProvider" targetEndpoint="MyProvider"
role="consumer"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
destinationStyle="topic"
jmsProviderDestinationName="demo.org.servicemix.source"
connectionFactory="#connectionFactory" />
<!-- JMS SENDER - PROVIDER -->
<jms:endpoint service="rtdemo:MyProvider" endpoint="myProvider"
role="provider"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
destinationStyle="topic"
jmsProviderDestinationName="demo.org.servicemix.result"
connectionFactory="#connectionFactory" />
<!-- FACTORY BEAN -->
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
</beans>
--------------------------------------------------------------------
Then my JMS client code is like:
ActiveMQConnectionFactory factory = new
ActiveMQConnectionFactory("tcp://localhost:61616");
ActiveMQTopic pubTopic = new ActiveMQTopic("demo.org.servicemix.source");
ActiveMQTopic subTopic = new ActiveMQTopic("demo.org.servicemix.result");
Connection connection = factory.createConnection();
//here is where the exception is raised
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
...
It seems the connection cannot be set up. Could any of you give me some
hints on how to solve the problem? Thanks a lot!!