java - 奇怪的 Tomcat 和 Axis Webservice 行为

标签 java web-services tomcat axis

我使用 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/

相关文章:

java - 如何使用 Jackson 序列化声明性链接( Jersey )

java - jax-ws 服务中的 "Operation Connection.commit is not allowed during a global transaction"

java - 如何在 Java 中使用具有 session 失效的 Tomcat CSRF 保护过滤器

java - 如何将 bytearray 转换为 Jar

java - 将递归连接转换为java对象

java - 如何将数据从一个网络服务发送到另一个网络服务?

tomcat 安全约束影响缓存

java - 将 Eclipse 替换为 Sublime Text 2/3 for java

java - 如何读取键名中带有 ":"冒号的属性

android - 如何为 ASP.NET MVC3 创建 Web 服务