我使用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上部署,一切正常。
这有什么解释吗?任何指针都非常受欢迎。
答案 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”条目。