【问题标题】:ActiveMQ send ObjectMessageActiveMQ 发送 ObjectMessage
【发布时间】:2016-10-26 16:45:11
【问题描述】:

我正在使用 ActiveMQ 在我当前的项目中实现消息传递系统。我需要发送和接收 Java 对象而不是简单的文本或二进制消息。 Java 对象(我的消息对象)根据需要实现了 Serializable 接口。

ActiveMQ 的最新版本增加了一些安全性,我需要将允许的包的属性设置为described here,但我没有设法使其工作。我不确定该属性需要添加到哪里。

错误信息:

这个类不允许被序列化。添加具有 'org.apache.activemq.SERIALIZABLE_PACKAGES' 系统属性的包

【问题讨论】:

  • 你是如何配置系统属性的?你试过运行 bin/activemq.bat -Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*" 吗?

标签: security activemq


【解决方案1】:

您需要在运行 jar 时在环境变量中传递受信任的包,或者您可以通过添加以下代码行以编程方式执行此操作:

    System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");

我希望这会有所帮助

【讨论】:

    【解决方案2】:

    在您的 ActiveMQ 配置中,添加 connectionFactory.setTrustedPackages(Arrays.asList("java.lang","your packagename"));

    【讨论】:

    • 引起:java.lang.ClassNotFoundException:禁止类java.util.ArrayList!不信任此类被序列化为 ObjectMessage 有效负载。
    猜你喜欢
    • 2019-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    相关资源
    最近更新 更多