我正在尝试将我的包添加为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配置的位置。
答案 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才能使更改生效。