0

奇妙な問題が発生しています

ActiveMQ はメッセージング サーバーであり、メッセージの送信に AMQP を使用しています。

パブリッシャーとサブスクライバーの両方が同じ Eclipse プロジェクトにある場合。send ObjectMessage を送信し、問題なく受信できます

しかし、サブスクライバーとパブリッシャーを 2 つの異なる Eclipse プロジェクトに分割すると、

javax.jms.MessageNotReadableException: Message body is write-only

これは、送信しているオブジェクトのクラスです

public class Test1 implements Serializable{

    private String x;

    public Test1( String x){
        this.x = x;
    }
}

そしてこれは例外です

javax.jms.MessageNotReadableException: Message body is write-only
        at org.apache.activemq.command.ActiveMQBytesMessage.checkWriteOnlyBody(ActiveMQBytesMessage.java:863)
        at org.apache.activemq.command.ActiveMQBytesMessage.initializeReading(ActiveMQBytesMessage.java:868)
        at org.apache.activemq.command.ActiveMQBytesMessage.getBodyLength(ActiveMQBytesMessage.java:190)
        at org.apache.qpid.proton.jms.AMQPNativeOutboundTransformer.transform(AMQPNativeOutboundTransformer.java:63)
        at org.apache.qpid.proton.jms.AutoOutboundTransformer.transform(AutoOutboundTransformer.java:37)
        at org.apache.activemq.transport.amqp.AmqpProtocolConverter$ConsumerContext.pumpOutbound(AmqpProtocolConverter.java:751)
        at org.apache.activemq.transport.amqp.AmqpProtocolConverter$ConsumerContext.onMessageDispatch(AmqpProtocolConverter.java:710)
        at org.apache.activemq.transport.amqp.AmqpProtocolConverter.onActiveMQCommand(AmqpProtocolConverter.java:300)
        at org.apache.activemq.transport.amqp.AmqpTransportFilter.oneway(AmqpTransportFilter.java:64)
        at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1378)
        at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:897)
        at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:943)
        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
        at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)

これはコードです

https://fisheye6.atlassian.com/browse/activemq/trunk/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java?r=1406466&r=1414990

4

2 に答える 2