java如何使用Tomcat隧道RMI
我想将RMI设置为通过java servlet上的端口80。。(通过防火墙) 我有一个Tomcat服务器,我正在寻找能够捕获RMI http请求并将其传递到服务器机器上的RMI层的模块。 我听说RMI会自动处理这件事
有关于这方面的分步指南吗?还是只在服务器上安装一个war文件
谢谢
你可以在下面搜索框中键入要查询的问题!
我想将RMI设置为通过java servlet上的端口80。。(通过防火墙) 我有一个Tomcat服务器,我正在寻找能够捕获RMI http请求并将其传递到服务器机器上的RMI层的模块。 我听说RMI会自动处理这件事
有关于这方面的分步指南吗?还是只在服务器上安装一个war文件
谢谢
# 1 楼答案
我们已经在生产服务器上这样做了,但那是很久以前的事了。没有war文件可供安装,因为这是一件非常不寻常的事情,尤其是现在使用AJAX和支持web的应用程序。出于可扩展性和可靠性的原因,我不建议在Internet上部署RMI。LAN甚至JVM都很棒,但在更大的范围内,如果可能的话,我会考虑更传统的Web服务。p>
除此之外,还有一个so-so guide here。它适用于Tomcat 3,但概念仍然相同,并且它提到了与Apache的集成,这对于Servlet的使用是非常冗余的,因此如果您已经非常熟悉Tomcat,那么可以忽略其中的部分内容
它将指导您在Tomcat中安装一个servlet,该servlet将解包一个RMI请求,该请求借助HTTP Post,定位本地注册表并为您完成远程方法调用。它还提供了一个小的演示服务器和客户端应用程序来测试您的设置
根据评论进行编辑:
我认为这是通过向RMI提供一个SocketFactory来实现的,该SocketFactory放弃了通常的端口1099路由,而是将请求放在HTTP/Post上
套接字工厂本身是这样的:只需更改URL对象,就可以使用HTTPS
现在,您只需要告诉您的应用程序在RMI交易中使用这个套接字工厂。在我们的代码库中,这是在服务器和客户端上完成的。在服务器端,当RMI服务将自身绑定到注册表时,您可以在导出对象以获取远程存根时指定客户端套接字工厂
在客户端上,您可以在查找注册表时指定套接字工厂