我有一个在端口:80上运行的Web应用程序,我有一个Axis Web服务,它是该Web应用程序的一部分。因此,该服务也在端口:80上运行。
但是,出于安全原因,我们的客户要求我们将Web服务端口更改为8080,以便他们只允许访问该端口以供Web服务的远程使用者使用。因此,他们无权访问常规Web应用程序,但可以访问该服务。
如果不重构应用并在单独的网络应用中取出网络服务,是否可以这样做?
答案 0 :(得分:1)
正如我在评论中所说,我们的Web应用程序托管在Oracle AS 10g上,其前面有一个Oracle Web Cache服务器。 Oracle Web Cache基于Apache httpd,因此它具有虚拟主机支持和URL重写(尽管在这些条款下不存在)。
我已成功通过以下方式解决问题:
它就像一个魅力。
对于Axis本身,我没有找到一种方法来配置它自己侦听另一个端口。我认为期望Axis提供此功能是不合理的,因为它只是托管在servlet容器中的servlet,而且是容器的工作来提供连接器/传输层。
无论如何......感谢所有提供帮助的人,我很感激。
答案 1 :(得分:0)
简短的回答可能是 - 是的,这是可能的。
Axis webservices主要足以与主应用程序分离,它应该很容易让它们在不同的Java Web服务器实例上运行,如果不能配置任何web服务器,那么它只能在端口8080上运行运行也在端口8080上运行,并仅在该端口提供Web服务。
答案 2 :(得分:0)
您应该使用端口8080连接器设置单独的服务。
实际上,你将在你的实例中运行2个“迷你”-Tomcats。
基本上,
<Service> <!-- normal service -->
<Connector port="80" />
</Service>
<Service> <!-- custom service -->
<Connector port="8080" />
<Engine>
<Host />
</Engine>
</Service>
它确实感觉这个解决方案可能会出现一些调试噩梦,如果它不能正常工作,那么运行第二个服务器(可能是Jetty)可能更容易。