2011-08-15 47 views
0

我有一個程序運行在遠程主機上,我需要連接到握手然後監聽消息。我已經設置了以下駱駝路線:使用camel-netty與遠程主機通信tcp

<route> 
    <from uri="netty:tcp://localhost:50001?decoders=#decoders&amp;sync=false" /> 
    <bean ref="TransformMessage" method="inboundDecoder" /> 
    <to uri="eventadmin:messages/aacus/inbound" /> 
</route> 

<route> 
    <from uri="eventadmin:messages/aacus/outbound" /> 
    <bean ref="TransformMessage" method="outboundEncoder" /> 
    <to uri="netty:tcp://192.168.0.111:50001?allowDefaultCodec=false&amp;sync=false" /> 
</route> 

我的問題是如何使這項工作?如果我使用

<from uri="netty:tcp://192.168.0.111:50001?decoders=#decoders&amp;sync=false" />

建立的路線失敗了綁定錯誤。

如何在不修改服務器的情況下設置連接以在特定端口上進行響應?

回答

1

在寫作的時候,駱駝 - 米娜和駱駝網都不可能做到這一點。消費者只能綁定到本地服務器。 Apache中有一個JIRA票證,用於實現未來的這一新功能。 https://issues.apache.org/jira/browse/CAMEL-1077

+0

謝謝克勞斯,我很害怕這種情況。更令人沮喪的是,這不被支持,因爲它似乎是一個普通而明顯的用例。我已經通過實現處理我的TCP通信的Camel自定義組件來解決此問題。 – Namaste

0

使用以下解決方法:

相反OB 192.168.0.111使用localhost。 然後安裝「socat」和如下

socat -s -u tcp4:192.168.0.111:50001 tcp4:localhost:50001 

這將隧道你給你的駱駝/網狀創建的本地服務遠程連接啓動它。