我使用 Apache Axis 在 tomcat 上部署了一个简单的 Web 服务。
如果我以 http://localhost:8080/webservices/TransactionService 访问网络服务我看到了通常的消息
TransactionService
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...
显示 Web 服务可用并可以使用。
但是,如果我以 http://10.0.0.1:8080/webservices/TransactionService 访问它(10.0.0.1 是机器的实际 IP。我在与上面相同的机器上访问它,机器托管 tomcat)我得到:
HTTP Status 404 - /webservices/TransactionService
--------------------------------------------------------------------------------
type: Status report
message: /webservices/TransactionService
description: The requested resource (/webservices/TransactionService) is not available.
--------------------------------------------------------------------------------
Apache Tomcat/5.5
tomcat日志中没有任何内容
如果我尝试在 Jetty 上部署,一切正常。
这有什么解释吗?欢迎任何指点。
最佳答案
Tomcat 可以以不同的方式监听不同的主机名/IP。具体来说,每个主机/IP 都可以有自己的工作目录:
<Host name="localhost" workDir="/workdir">
...
</Host>
部署到一个工作目录的应用程序对具有另一个工作目录的主机不可用。
检查您的配置。
更新:如果将名称指定为名称而非 IP,请检查该名称是否也解析为 10.* 地址。
另外,其中一个主机是默认的。如果没有特定的主机,它现在会响应所有请求,无论它们的目标主机是什么。对于您的设置,您可能只想保留那个 Activity 。
关于java - 奇怪的 Tomcat 和 Axis Webservice 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/615222/