我正在使用ActiveMQ在我当前的项目中实现消息传递系统。我需要发送和接收Java对象而不是简单的文本或二进制消息。 Java对象(我的消息对象)根据需要实现Serializable接口。
ActiveMQ的最新版本增加了一些安全性,我需要设置一个允许包为described here的属性,但我还没有设法让它工作。我不确定需要添加哪个属性。
错误讯息:
不允许此类序列化。使用' org.apache.activemq.SERIALIZABLE_PACKAGES'添加包系统属性
答案 0 :(得分:13)
您需要在运行jar时在环境变量中传递受信任的包,或者您可以通过添加以下代码行以编程方式执行此操作:
System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");
我希望这会有所帮助
答案 1 :(得分:2)
在ActiveMQ配置中,添加connectionFactory.setTrustedPackages(Arrays.asList("java.lang","your packagename"));