我希望看到已在ActiveMQ队列中排队的邮件内容。 我打开了web-console。(http://localhost:8161/admin/queues.jsp)并点击了队列消息的message-id。它在"消息详细信息"中给出了以下错误。窗口,而不是给出消息的内容。
" javax.jms.JMSException:无法从内容构建正文。 可序列化的类不可用于代理。原因: 抛出java.lang.ClassNotFoundException:"
此异常的原因是什么?我需要做些什么来摆脱这个?
答案 0 :(得分:3)
我使用ActiveMQ版本5.8.0看到了同样的错误
在我的情况下,它是一个red herring,ActiveMQ控制台无法反序列化它无法访问该类所在jar的消息,但消费者应用程序可以访问该消息,并且消息是在没有问题的情况下从队列传递给消费者。
我有兴趣看看这里是否有问题的解决方案(在控制台中查看消息),以及如何在更新版本的ActiveMQ中处理此问题。
答案 1 :(得分:1)
如OwIR所述,您需要将包含类的jar文件的路径设置到wrapper.java.classpath.3
中的%ACTIVEMQ_HOME%\bin\win64\wrapper.conf
属性上。
更新以上属性后,您可能会遇到以下异常
Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class
为了对其进行修复,请将wrapper.java.additional.13
属性设置为-Dorg.apache.activemq.SERIALIZABLE_PACKAGES="<choose_the_packages_set_it_here>"
您也可以使用-Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*"
作为值,但是使用通配符可能不安全。
这对我有用!!希望对您有帮助