设置可从Scala序列化的ActiveMQ Objectmessage

时间:2016-04-26 13:14:24

标签: scala serialization activemq

在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环境变量?谢谢!

1 个答案:

答案 0 :(得分:0)

我刚刚添加了以下静态代码行,它可以工作:

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