Настройка ActiveMQ Objectmessage, сериализуемого из Scala
После изменения версии ActiveMQ (с 5.9.0 r4 на r4) необходимо пометить ObjectMessage
ActiveMQ сериализуется явно, как написано здесь: 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)
, Может ли кто-нибудь сказать, как это сделать в нашем случае, или как настроить org.apache.activemq.SERIALIZABLE_PACKAGES
переменная окружения из Scala? Спасибо!
1 ответ
Я просто добавил следующую статическую строку кода, и она работает:
System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES", """*""")