java - 如何将 jax-ws 服务部署到 eclipse 或 tomcat?

标签 java web-services jax-ws cxf

作为网络服务的初学者,我已经尝试了 2 周来获得一个与 maven、eclipse 和 tomcat 一起工作的 hello world 网络服务。

我放弃了让任何代码/wsdl 生成器工作的尝试,我遵循了本教程 http://myarch.com/create-jax-ws-service-in-5-minutes编写一个示例,非常棒。

这会产生 4 个类文件和一个 WSDL 文件。

所以我的愚蠢问题是如何在 eclipse 和/或 tomcat 上“运行”该服务?

我尝试将它们部署为 Web 应用程序,但没有任何乐趣 - web.xml 中没有任何内容告诉 servlet 引擎 Web 服务存在,所以我猜它永远无法工作。

我是否必须在 tomcat 中有一个特殊的 Web 服务容器(例如 axis2、metro 或 CXF)并部署到它?或者它可以只使用一些 jax-ws jar + 神秘配置运行吗?

我不想安装到 tomcat metro(使用 ant,专为 glassfish 而设计)或 axis2(使用 ant,大多数人似乎不推荐)。

我查看了 CXF,但在他们的站点上找不到任何关于如何在没有 spring 的情况下在 tomcat(或 eclipse)上安装/配置它的信息。我将 CFX jar 放在 maven 依赖项中,并安装了 eclipse 插件,但这并没有让你更接近实际运行一个没有神秘配置胶水的 web 服务。 CXF 似乎与 spring 联系在一起,这对我们来说是一个很大的缺点,因为我们不使用 spring(或不需要它的任何功能)。

我注意到 helios wtp 有某种名为 JSR-109 的 Web 服务项目。这个 java RPC 是唯一的,还是支持完整的 SOAP web 服务系统,是否值得尝试弄清楚?

非常欢迎任何建议。我必须用谷歌搜索 1000 页来寻找网络服务 chalice ——即如何创建一个端到端的 tomcat 并将其部署到端到端。有这么难吗?

最佳答案

将此片段添加到您的web.xml 文件

<servlet>
    <servlet-name>wshello</servlet-name>
    <servlet-class>
        com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>              
</servlet>      
<servlet-mapping>
    <servlet-name>wshello</servlet-name>
        <url-pattern>/webservice</url-pattern>
</servlet-mapping>

然后创建一个名为sun-jaxws.xml的文件。

<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"  version="2.0">
  <endpoint  name="WebServiceTest"
             implementation="your.webservice.impl.ClassName"
             url-pattern="/webservice"/>
</endpoints>

然后像往常一样创建一个war文件。您不需要 CXF 或 Axis 即可将基本 WebService 部署到 Tomcat 中。 顺便说一句,jax-ws 库 jars(jaxws-api.jar、jaxb-impl.jar 等)应该在您的类路径中。您可以从 here 下载 jax-ws 库

关于java - 如何将 jax-ws 服务部署到 eclipse 或 tomcat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206681/

相关文章:

java - 如何在 JAX-WS 调用中指定 url 并避免初始网络连接?

java - "Fix your application"部署 war 时来自 glassfish 的警告

java - 这个递归是如何工作的以及如何让它打印出根?

java - ArrayList 相等 JUnit 测试

java - 从 java 读取串行 (/dev/tty*)

java - 空对象还是虚拟对象?

java - 将 axis2 中的 Web 服务客户端放入 tomcat 中的 Maven Web 应用程序中

android - 如何在异步任务中调用 ksoap2?

java - 将 WebEnv 和 QueryKey 示例用于 EFetch 时出现 ADBException

java - 关于在 javaEE 服务器的 Web 服务中使用的最佳标准 API 协议(protocol)的建议?