更改Axis Web服务正在侦听的端口

时间:2009-01-20 10:59:24

标签: java http binding axis port

我有一个在端口:80上运行的Web应用程序,我有一个Axis Web服务,它是该Web应用程序的一部分。因此,该服务也在端口:80上运行。

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

如果不重构应用并在单独的网络应用中取出网络服务,是否可以这样做?

3 个答案:

答案 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)可能更容易。