2009-01-20 128 views
1

我有一个运行在端口80上的Web应用程序,并且我有一个属于该Web应用程序的Axis Web服务。因此,该服务也在端口80上运行。更改Axis Web服务正在侦听的端口

但是,出于安全原因,我们的客户要求我们将Web服务端口更改为8080,以便他们只允许访问该Web服务的远程消费者的端口。因此他们将无法访问常规Web应用程序,但可以访问该服务。

这样做可以不重构应用程序,并在单独的Web应用程序中取出Web服务?

+0

什么在运行应用程序? Tomcat的? (如果Axis今天包含它自己的Web服务器,我很抱歉 - 我认为它以前只是一个可以在任何servlet容器中运行的servlet)。 – 2009-01-20 11:02:57

回答

1

正如我在评论中所说的那样,我们的Web应用程序托管在Oracle AS 10g上,Oracle Web Cache服务器位于它的前面。 Oracle Web Cache基于Apache httpd,因此它具有虚拟主机支持和URL重写功能(尽管这些条款并不存在)。

我设法解决这个问题:

它的功能就像一个魅力。

至于Axis本身,我没有找到一种方法来配置它自己侦听另一个端口。我认为期望Axis提供这种功能是不合理的,因为它只是一个托管在servlet容器中的servlet,而且它是容器提供连接器/传输层的工作。

无论如何......感谢所有提供帮助的人,我很感激。

0

简短的回答可能是 - 是的,这是可能的。

Axis webservices通常足以与主应用程序解耦,应该很容易让它们在不同的Java Web服务器实例上运行,而该实例仅在端口8080运行,如果无法配置任何Web服务器您也运行在端口8080上运行,并仅在该端口上提供Web服务。

0

您应该能够使用端口8080连接器设置单独的服务。

实际上,您将在您的实例中运行2个“mini”-Tomcats。

基本上,

<Service> <!-- normal service --> 
    <Connector port="80" /> 
</Service> 
<Service> <!-- custom service --> 
    <Connector port="8080" /> 
    <Engine> 
    <Host /> 
    </Engine> 
</Service> 

它觉得这个解决方案可以提出一些调试的噩梦,如果它不工作,恰到好处,所以它可能是更容易运行第二个服务器(可能码头)。

相关问题