Unsupported message amqp-value type: map
Does solace message broker support amqp-value type - map ?
I using Apache Camel to send message to the broker. However, i faced an exception when sending the following message to Solace message broker.
{message=up, uptime=1000.200}
Log Message :
````
Caused by: org.apache.qpid.jms.provider.ProviderException: unsupported message amqp-value type: map [condition = amqp:not-implemented]
at org.apache.qpid.jms.provider.amqp.AmqpSupport.convertToNonFatalException(AmqpSupport.java:181)
at org.apache.qpid.jms.provider.amqp.AmqpFixedProducer.applyDeliveryStateUpdate(AmqpFixedProducer.java:249)
at org.apache.qpid.jms.provider.amqp.AmqpFixedProducer.processDeliveryUpdates(AmqpFixedProducer.java:220)
at org.apache.qpid.jms.provider.amqp.AmqpProvider.processUpdates(AmqpProvider.java:1016)
at org.apache.qpid.jms.provider.amqp.AmqpProvider.onData(AmqpProvider.java:878)
at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:548)
at org.apache.qpid.jms.transports.netty.NettyTcpTransport$NettyTcpTransportHandler.channelRead0(NettyTcpTransport.java:541)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:509)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
``
Comments
-
Our SMF-based JMS API supports MapMessage. But this is AMQP… we support the protocol, but perhaps we don't support this message format specifically?
EDIT: yup, we don't support this with AMQP: https://docs.solace.com/API/AMQP/Client-Support.htm?Highlight=mapmessage Thanks @vlam ..!
You could try using the "regular" SMF/native JMS API..?
0 -
Hi @dreamoka,
AMQP is a protocol, whereas JMS is a standard API. The JMS standard provided more flexibility for vendors to implement it how they want. So if you use the JMS option with Camel you would basically be dropping the Solace JMS library (jar) in place and then that will communicate with Solace brokers using the JMS standard over SMF (the Solace protocol).
More info on AMQP vs. JMS here:
Hope that helps!
0