0

私の現在のプロジェクトでは、ApacheAxisを使用してSOAP経由でリモート呼び出しを行っています。

現在、ファイアウォールの制約によりサーバーのホスト+ポートに直接アクセスできない場合がありますが、SSHトンネルの可能性があります。

Axisのドキュメントには、独自のSocketファクトリをプラグインする可能性が記載されています。ただし、このプラグインは、Systemプロパティで実装クラスの名前を指定することによってのみ可能であるように思われます。

JSchセッションに基づいて(カスタムSocketImpl実装を介して)SocketFactoryを実装するために1時間ほどを費やしましたが、このSocketFactoryオブジェクトはSessionオブジェクトに依存しており、単純に独立してインスタンス化することはできません。

静的変数/メソッドを使用してこれをなんとか解決できると思いますが、これは確かに見栄えがよくありません。

実際、すべてのサーバー(またはサーバーのグループ)に新しいSocketFactory(別のベースSSHセッションを使用)を提供できるようにしたいのですが、同時に複数存在する可能性があります。したがって、これをに提供する必要があります。 ServiceLocator。

これを解決する方法はありますか?

4

1 に答える 1

1

恒久的なトンネルを開くことができます。 ssh -L1337:127.0.0.1:8080 192.168.0.x

次に、リモートであるかのようにローカルアドレス(127.0.0.1:1337)に接続します。

于 2011-05-19T02:06:33.020 に答える