You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Brian Woolf <ys...@163.com> on 2008/11/02 11:31:03 UTC
problem in sending messages from CMS to a JMS client.
my pc:
activeMQ5.0
cms:activemq-cpp-2.1.3
java SE 5
windows xp sp2
this is my code:
public void onMessage(Message message) {
System.out.println("Received message: " + message);
try {
if (message instanceof TextMessage) {
TextMessage txtMsg = (TextMessage)message;
if (verbose) {
String msg = txtMsg.getText();
if (msg.length() > 50) {
msg = msg.substring(0, 50) + "...";
}
System.out.println("Received text: " + msg);
}
} else if (message instanceof BytesMessage){
BytesMessage bytesMessage=(BytesMessage)message;
if (verbose) {
System.out.println("Received byte: " + message);
}
}
if (message.getJMSReplyTo() != null) {
replyProducer.send(message.getJMSReplyTo(),
session.createTextMessage("Reply: " + message.getJMSMessageID()));
}
if (transacted) {
session.commit();
} else if ( clientAck ) {
message.acknowledge();
}
} catch (JMSException e) {
System.out.println("Caught: " + e);
e.printStackTrace();
} finally {
if (sleepTime > 0) {
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
}
}
}
}
Received message: ActiveMQTextMessage {commandId = 5, responseRequired =
true, messageId = b0b4a930-7e02-4d72-a319-95990ecf4c54:0:0:0,
originalDestination = null, originalTransactionId = null, producerId =
b0b4a930-7e02-4d72-a319-95990ecf4c54:0:0, destination = queue://TEST.FOO,
transactionId = null, expiration = 0, timestamp = 1225619843203, arrival =
0, brokerInTime = 1225619843203, brokerOutTime = 1225619843203,
correlationId = null, replyTo = null, persistent = false, type = null,
priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
compressed = false, userID = null, content =
org.apache.activemq.util.ByteSequence@1430b5c, marshalledProperties = null,
dataStructure = null, redeliveryCounter = 0, size = 0, properties = null,
readOnlyProperties = true, readOnlyBody = true, droppable = false, text =
null}
the error happen:
javax.jms.JMSException: java.io.UTFDataFormatException
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at
org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:90)
at MQServer.onMessage(Unknown Source)
at
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:946)
at
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:122)
at
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:192)
at
org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
at
org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.UTFDataFormatException
at
org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:372)
at
org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:85)
--
View this message in context: http://www.nabble.com/problem-in-sending-messages-from-CMS-to-a-JMS-client.-tp20288565p20288565.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: problem in sending messages from CMS to a JMS client.
Posted by Brian Woolf <ys...@163.com>.
the cpp look like:
session = connection->createSession( Session::AUTO_ACKNOWLEDGE );
destination = session->createQueue( destURI );
producer = session->createProducer( destination );
producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT );
string filename(file); //no ASCII char filename
TextMessage* fileMessage = session->createTextMessage( filename );
producer->send( fileMessage );
if (fileMessage != NULL)
{
delete fileMessage;
}
--
View this message in context: http://www.nabble.com/problem-in-sending-messages-from-CMS-to-a-JMS-client.-tp20288565p20314687.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: problem in sending messages from CMS to a JMS client.
Posted by Timothy Bish <ta...@gmail.com>.
What does the CPP code look like?
You may want to try using ActiveMQ-CPP 2.2.1, there were some fixes in
the marshaling code that might resolve this.
Regards
Tim.
On Sun, 2008-11-02 at 02:31 -0800, Brian Woolf wrote:
>
> my pc:
>
> activeMQ5.0
> cms:activemq-cpp-2.1.3
> java SE 5
> windows xp sp2
>
>
> this is my code:
>
> public void onMessage(Message message) {
>
> System.out.println("Received message: " + message);
> try {
>
> if (message instanceof TextMessage) {
> TextMessage txtMsg = (TextMessage)message;
>
> if (verbose) {
>
> String msg = txtMsg.getText();
> if (msg.length() > 50) {
> msg = msg.substring(0, 50) + "...";
> }
>
> System.out.println("Received text: " + msg);
> }
> } else if (message instanceof BytesMessage){
> BytesMessage bytesMessage=(BytesMessage)message;
>
> if (verbose) {
> System.out.println("Received byte: " + message);
> }
> }
>
> if (message.getJMSReplyTo() != null) {
> replyProducer.send(message.getJMSReplyTo(),
> session.createTextMessage("Reply: " + message.getJMSMessageID()));
> }
>
> if (transacted) {
> session.commit();
> } else if ( clientAck ) {
> message.acknowledge();
> }
>
> } catch (JMSException e) {
> System.out.println("Caught: " + e);
> e.printStackTrace();
> } finally {
> if (sleepTime > 0) {
> try {
> Thread.sleep(sleepTime);
> } catch (InterruptedException e) {
> }
> }
> }
> }
>
> Received message: ActiveMQTextMessage {commandId = 5, responseRequired =
> true, messageId = b0b4a930-7e02-4d72-a319-95990ecf4c54:0:0:0,
> originalDestination = null, originalTransactionId = null, producerId =
> b0b4a930-7e02-4d72-a319-95990ecf4c54:0:0, destination = queue://TEST.FOO,
> transactionId = null, expiration = 0, timestamp = 1225619843203, arrival =
> 0, brokerInTime = 1225619843203, brokerOutTime = 1225619843203,
> correlationId = null, replyTo = null, persistent = false, type = null,
> priority = 4, groupID = null, groupSequence = 0, targetConsumerId = null,
> compressed = false, userID = null, content =
> org.apache.activemq.util.ByteSequence@1430b5c, marshalledProperties = null,
> dataStructure = null, redeliveryCounter = 0, size = 0, properties = null,
> readOnlyProperties = true, readOnlyBody = true, droppable = false, text =
> null}
>
> the error happen:
>
> javax.jms.JMSException: java.io.UTFDataFormatException
> at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
> at
> org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:90)
> at MQServer.onMessage(Unknown Source)
> at
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:946)
> at
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:122)
> at
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:192)
> at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:118)
> at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:42)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.io.UTFDataFormatException
> at
> org.apache.activemq.util.MarshallingSupport.readUTF8(MarshallingSupport.java:372)
> at
> org.apache.activemq.command.ActiveMQTextMessage.getText(ActiveMQTextMessage.java:85)
>