0

接続してハンドシェイクし、メッセージをリッスンする必要があるリモートホストで実行しているプログラムがあります。次のキャメルルートをセットアップしました:

<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" />

バインディング エラーで失敗します。

サーバーを変更せずに特定のポートで応答するように接続を設定するにはどうすればよいですか?

4

2 に答える 2

1

これは、現時点では camel-mina と camel-netty のいずれでも可能ではありません。コンシューマーは、ローカル サーバーにのみバインドできます。Apache には、将来のためにこのような新機能を実装するための JIRA チケットがあります。https://issues.apache.org/jira/browse/CAMEL-1077

于 2011-08-19T06:43:41.630 に答える
0

次の回避策を使用します。

代わりに192.168.0.111使用しますlocalhost。次に、「socat」をインストールして、次のように起動します

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

これにより、camel/netty で作成したローカル サービスへのリモート接続がトンネリングされます。

于 2013-09-26T18:30:27.800 に答える