在Karaf中添加activemq可信包

时间:2017-07-19 18:02:38

标签: activemq apache-karaf apache-servicemix

我正在尝试将我的包添加为activemq中的(de)序列化信任。

我正在使用Mongo 3.0.1,因此BsonArray.parse(...)不是一个选项。

我试过了System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");,但这被忽略了。从this开始,在spring / camel中设置它会覆盖系统属性。

  

如果已设置,则此配置将覆盖系统属性。

将以下内容从同一链接复制粘贴到我的blueprint.xml中会导致一堆“amq-broker”错误,需要重新安装从头开始修复所有内容,我不敢再次尝试收到错误消息。< / p>

<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616"/>
    <property name="trustAllPackages" value="true"/>
</bean>
<bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
    <property name="connectionFactory" ref="connectionFactory"/>
</bean>
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="configuration" ref="jmsConfig"/>
</bean>

那么,在Karaf / ServiceMix中,将可信包添加到activemq的正确方法是什么?

相关question,但系统属性对我不起作用,我不知道在Karaf中ActiveMQ配置的位置。

1 个答案:

答案 0 :(得分:1)

我发现了我的问题。我的激活器中System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");的原因不起作用,是因为ActiveMQ仅在启动时读取org.apache.activemq.SERIALIZABLE_PACKAGES,而ActiveMQ在我在Karaf中的捆绑之前启动。

我不确定如何从激活器重新启动ActiveMQ以强制它在运行时获取更改,但您可以在org.apache.activemq.SERIALIZABLE_PACKAGES=*中手动设置<Karaf-home>/etc/system.properties。这将在ActiveMQ启动之前为您设置属性,以便ActiveMQ接收您的配置。请注意,更改system.properties文件后,您需要重新启动Karaf才能使更改生效。