我试图发送一个ObjectMessage,其中包含一个myObject,即myClass的实例,使用ActiveMQ作为JMS。通过Mule 4.3.0调用ActiveMQ。
接收应用程序中发生错误:
Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: Forbidden class client.MyClass! This class is not trusted to be serialized as ObjectMessage payload. Please take a look at http://activemq.apache.org/objectmessage.html for more information on how to configure trusted classes.这一页写着:
如果需要交换对象消息,则需要添加应用程序正在使用的包。您可以通过使用代理的
org.apache.activemq.SERIALIZABLE_PACKAGESsystem属性来实现这一点。可以将此系统属性添加到ACTIVEMQ_OPTS脚本中的${ACTIVEMQ_HOME}/bin/env变量中。
我使用的是ActiveMQ 5.15.4。在\bin子文件夹中,没有env脚本,只有activemq脚本。
我应该在哪里配置ACTIVEMQ_OPTS,使我,不会得到禁止的类错误。或者任何其他的解决方案都会有帮助。
发布于 2022-03-25 11:49:49
您应该在操作系统外壳中定义ACTIVEMQ_OPTS,使用适合该操作系统的方法。例如,在Linux中,将其设置在用户的配置文件脚本中,或者使用bin/env脚本。
如果您正在使用Windows,则可以将其设置为使用UI。
https://stackoverflow.com/questions/71612255
复制相似问题