2014-02-08 73 views
0

我是Apache Camel的新手,我處於我的應用程序需要使用駱駝上下文進行註冊的編解碼器(HL7)的情況。我知道有一個解決方案,你可以用你自己的註冊表的實例創建一個默認的駱駝上下文,但有什麼辦法可以在駱駝上下文中配置我自己的註冊表嗎?在駱駝上下文中配置註冊表xml

我使用JavaDSL來開發我的應用程序,上下文中的配置是這樣的。

<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec"> 
    <property name="charset" value="iso-8859-1"/> 
</bean> 


<camelcontext id = "context"> 
    <ref bean = "MyRouteBuilder"/> 
<camelcontext/> 

我通過覆蓋配置方法在MyRouteBuilder類中構建路由。我的路線是這樣的。

from("mina2:tcp://localhost:8888?sync=true&codec=#hl7codec").to("jms:queue") 

但是,編解碼器似乎不工作。當我刪除編解碼器時,我的應用程序運行良好並接受HL7消息,但是使用編解碼器,我無法接收任何消息。我覺得這是因爲編解碼器bean已定義,但上下文無法將其提取出來。我不想用所需的註冊表設置創建defaultcamelcontext。相反,我正在尋找一種方法在camelcontext配置xml中註冊編解碼器,到目前爲止,我失敗了。

我是否缺少任何與我的配置?任何幫助將不勝感激。

回答

0

你通常不需要在Java中DSL使用&amp;,所以更換&amp;codec=&codec=

+0

bgossit是正確的。只有在XML中,您應該轉義爲&等,並且也可以在XML中使用< and >字符。 –

+0

感謝@bgossit和克勞斯。我糾正了它。我仍然無法收到任何關於終點的消息。日誌表示路由已啓動並準備使用,但我仍無法收到該消息 – gwaihir