【问题标题】:Java: using endpoint to publish webservice to tomcat serverJava:使用端点将 web 服务发布到 tomcat 服务器
【发布时间】:2011-01-06 05:04:18
【问题描述】:

我正在创建一个简单的 SOAP Web 服务。 我要确保它在 tomcat 网络服务上运行。

我试图用 JAX-WS 来实现这个(见代码)

我的问题是:Endpoint.publish 是使用 tomcat 服务器来托管它还是迷你 glassfish 类型的服务器?

我应该扩展 UnicastRemoveObject 还是类似的东西?

理想情况下,它可以打包成一个 .WAR 文件并放到目录中,然后就可以工作了。

它似乎不适用于我安装的 tomcat 服务器,因为它说端口已在使用中。我正在使用安装了 tomcat6 包的 Ubuntu karmic,也可能是我的用户没有权限发布到 8080 上正在运行的 tomcat

我希望这个问题足够清楚

示例代码:

@WebService
public class UserAttributes {
    public static void main(String[] args) {
        UserAttributes instance = new UserAttributes();
        Endpoint.publish("http://localhost:8082/WebServices/userattributes", 
            instance);
    }

    public string Hello() {
       return "Hello World";
    }
}

【问题讨论】:

  • JDK 中的 default JAX-WS 实现使用基于 NIO 的最小 Web 服务器。
  • 谢谢!有没有办法将它定位到已经运行的 tomcat 服务器?

标签: java web-services jax-ws tomcat6 endpoint


【解决方案1】:

Endpoint.publish 是使用 tomcat 服务器来托管它还是迷你 glassfish 类型的服务器?

JAX-WS RI Endpoint.publish API 默认使用轻量级 HTTP server implementation,它包含在 Sun 的 Java SE 6 中。所以不,它使用嵌入式 GlassFish 或嵌入式Tomcat,更不用说您现有的 Tomcat 安装:它使用 嵌入式 容器,即在同一个 JVM 中运行的东西。仅供参考,但是可以插入其他实现,只要它们提供 服务提供者实现 (SPI)。例如,Jetty 6 就是这样做的,请参阅J2se6HttpServerSPI。但我不会在这里介绍所有细节:)

它似乎不适用于我安装的 tomcat 服务器,因为它说端口已在使用中。

如上所述,Enpoint.publish API 不使用您现有的 Tomcat 安装。它使用自己的服务器并允许您部署 Web 服务,而无需打包和部署您的应用程序。它在开发过程中特别有用(因为它加快了速度)。实际上,它非常方便。

现在,如果您的 Tomcat 服务器在端口 8082 上运行,并且您尝试使用同一端口发布您的 Endpoint,那么事情将不会像您注意到的那样工作。在开发过程中使用不同的(和未使用的)端口。

如果您想将 Web 服务部署到现有的 Tomcat 安装,那么您必须将它们打包到一个 war 中并在 Tomcat 上部署这个 war。但这完全不同,与使用Endpoint.publish API 没有任何关系。

【讨论】:

  • 很好的解释。
【解决方案2】:

非常有趣。在我看来,嵌入式服务器还包含一个肥皂引擎来处理发送到该端口的肥皂消息。这也是嵌入式soap引擎还是使用流行的soap引擎之一(axis2,cxf,metro)

【讨论】:

    【解决方案3】:

    Endpoint.publish() 不会将 Web 服务发布到服务器实例。如果要将端点发布到 Web 服务器,则必须使用 ws gen 工具将其打包到 WAR 中,然后部署到 Web 服务器。

    Endpoint.publish() 将端点发布到 JVM 的运行时实例,而无需创建服务器实例。当使用使用 JAX-WS 创建的客户端测试类对 Web 服务进行单元测试时,它非常有用。

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多