奇怪的Tomcat和Axis Web服务行为

时间:2009-03-05 15:20:11

标签: java web-services tomcat axis

我使用Apache Axis在tomcat上部署了一个简单的Web服务。

如果我以http://localhost:8080/webservices/TransactionService的身份访问网络服务,我会看到通常的消息

  

TransactionService

     

您好,这是AXIS服务!

     

也许会有一个表格在这里调用服务......

显示网络服务可用且可以使用。

但是如果我以http://10.0.0.1:8080/webservices/TransactionService的形式访问它(10.0.0.1是机器的实际IP。我在上面的同一台机器上访问它,机器托管tomcat)我得到:

  

HTTP状态404 - / webservices / TransactionService

     

-------------------------------------------- ------------------------------------

     

输入:状态报告

     

消息: / webservices / TransactionService

     

description :请求的资源(/ webservices / TransactionService)不可用。

     

-------------------------------------------- ------------------------------------

     

Apache Tomcat / 5.5

tomcat日志中没有任何内容

如果我尝试在Jetty上部署,一切正常。

这有什么解释吗?任何指针都非常受欢迎。

2 个答案:

答案 0 :(得分:3)

Tomcat可以以不同的方式侦听不同的主机名/ IP。具体来说,每个主机/ IP都可以拥有自己的工作目录:

<Host name="localhost" workDir="/workdir">
  ...
</Host>

部署到一个workdir的应用程序将无法用于具有其他workdir的主机。

检查您的配置。

UPDATE :如果将name指定为name而不是IP,请检查该名称是否已解析为10. * address。

此外,其中一个主机是默认的。如果没有特定的主机,它现在响应所有请求现在对它们所针对的主机也很重要。对于您的设置,您可能希望只保留一个活动状态。

答案 1 :(得分:0)

我认为对Tomcat配置的改变不是答案。我不必使用本地IP地址或localhost这样做。

它可以像添加到主机文件一样简单吗?我在c:/ windows / system32 / drivers / etc / hosts中有我的,并且其中有一个“127.0.0.1 localhost”条目。