在ActiveMQ版本更改后(从5.9.0 r4到r4),必须明确标记ActiveMQ可序列化的ObjectMessage
,如下所示:http://activemq.apache.org/objectmessage.html。按建议(-Dorg.apache.activemq.SERIALIZABLE_PACKAGES="*"
)设置环境变量可以正常工作,但在我们的案例中,这不是一个优雅的解决方案。我需要从Scala源代码中进行设置。目前,连接设置如下:
val properties = new java.util.Properties()
properties.setProperty(javax.naming.context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory")
properties.setProperty(javax.naming.context.PROVIDER_URL, "tcp://localhost:61616")
val context = new InitialContext(properties)
val topicConnection = context.lookup("ConnectionFactory").asInstanceOf[TopicConnectionFactory].createTopicConnection
我找不到可以插入建议的factory.setTrustAllPackages(true)
的地方。在我们的案例中,任何人都可以告诉如何执行此操作,或者如何从Scala设置org.apache.activemq.SERIALIZABLE_PACKAGES
环境变量?谢谢!
答案 0 :(得分:0)
我刚刚添加了以下静态代码行,它可以工作:
System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", """*""")