Web services 为Apache Axis提供socketfactory对象,而不是类

Web services 为Apache Axis提供socketfactory对象,而不是类,web-services,axis,socketfactory,Web Services,Axis,Socketfactory,在我当前的项目中,我们使用ApacheAxis通过SOAP进行远程调用 现在,由于防火墙限制,服务器主机+端口无法直接访问,但可能存在SSH隧道 这篇文章提到了插上自己的电源的可能性。但这种插入似乎只有通过在系统属性中提供实现类的名称才能实现 我刚刚花了一个小时左右的时间基于JSch会话实现了一个SocketFactory(通过自定义SocketImpl实现),但是这个SocketFactory对象依赖于会话对象,不能简单地单独实例化 我想我可以用静态变量/方法解决这个问题,但这看起来确实不太好

在我当前的项目中,我们使用ApacheAxis通过SOAP进行远程调用

现在,由于防火墙限制,服务器主机+端口无法直接访问,但可能存在SSH隧道

这篇文章提到了插上自己的电源的可能性。但这种插入似乎只有通过在系统属性中提供实现类的名称才能实现

我刚刚花了一个小时左右的时间基于JSch会话实现了一个SocketFactory(通过自定义SocketImpl实现),但是这个SocketFactory对象依赖于会话对象,不能简单地单独实例化

我想我可以用静态变量/方法解决这个问题,但这看起来确实不太好

实际上,我希望能够为每台服务器(或服务器组)提供一个新的SocketFactory(带有另一个基本SSH会话),其中可能同时存在多台服务器-因此,有必要向ServiceLocator提供此服务


有什么办法可以解决这个问题吗?

你可以打开一条永久的隧道。
ssh-L1337:127.0.0.1:8080 192.168.0.x


然后连接到本地地址(127.0.0.1:1337),就像它是远程的一样。

谢谢您的建议。我不喜欢这里额外的开放端口(即使只在本地主机上),但是如果我找不到其他任何东西,我会使用这个(这个的JSch变体)。如果有人找到更好的主意,我仍然愿意。