2017-07-19 18 views
0

我正在嘗試將我的軟件包作爲受信任的(de)序列化添加到activemq中。在Karaf中添加activemq可信軟件包

我正在使用Mongo 3.0.1所以BsonArray.parse(...)不是一個選項。

我試過System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");但是被忽略。從this開始,將它設置爲spring/camel將覆蓋系統屬性。

此配置將覆蓋系統屬性(如果已設置)。

的複製粘貼來自同一個鏈接到我的blueprint.xml以下原因造成的需要從頭開始重新安裝一切修復的「的amq經紀」的錯誤一堆,我害怕再次嘗試獲取錯誤信息。

<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

我覺得在servicemix etc目錄的某個地方有一個activemq.xml文件或者有ActiveMQ配置的東西。 –

回答

1

我想出了我的問題。原因System.setProperty("org.apache.activemq.SERIALIZABLE_PACKAGES","*");在我的激活器不起作用,是因爲ActiveMQ在啓動時只讀取org.apache.activemq.SERIALIZABLE_PACKAGES,並且在我的Karaf包之前ActiveMQ已啓動。

我不確定如何從我的激活器重新啓動ActiveMQ以強制它在運行時拾取更改,但您可以在<Karaf-home>/etc/system.properties中手動設置org.apache.activemq.SERIALIZABLE_PACKAGES=*。這將在ActiveMQ啓動之前爲您設置屬性,以便ActiveMQ收到您的配置。請注意,在更改system.properties文件後,您需要重新啓動Karaf才能使更改生效。