Предоставление Apache Axis с сокетфакторным объектом, а не классом - PullRequest
0 голосов
/ 19 мая 2011

В моем текущем проекте мы используем Apache Axis для удаленных вызовов через SOAP.

Теперь есть случаи, когда хост + порт сервера не доступен напрямую из-за ограничений брандмауэра, но есть вероятностьтуннеля SSH.

В документации Axis упоминается возможность подключения собственной фабрики сокетов .Но это подключение возможно только при условии указания имени класса реализации в свойстве System.

Я потратил час или около того, чтобы реализовать SocketFactory (через собственную реализацию SocketImpl) на основе JSchсеанс - но этот объект SocketFactory зависит от объекта Session и не может быть просто независимо создан.

Я думаю, что я мог бы как-то решить эту проблему, используя статические переменные / методы, но это, конечно, не выглядит хорошо.1013 *

На самом деле, я хочу иметь возможность предоставить новый SocketFactory (с другим базовым SSH-сеансом) для каждого сервера (или группы серверов), которых может существовать несколько одновременно - таким образом, это будет необходимочтобы предоставить это ServiceLocator.

Есть ли способ решить эту проблему?

1 Ответ

1 голос
/ 19 мая 2011

Вы можете открыть постоянный туннель. ssh -L1337:127.0.0.1:8080 192.168.0.x

и затем подключитесь к локальному адресу ( 127.0.0.1: 1337 ), как если бы он был удаленным.

...