作为一名 Web 服务初学者,我已经尝试了 2 周来获得一个与 Maven、Eclipse 和 Tomcat 一起使用的 hello World Web 服务。
我放弃了让任何代码/wsdl 生成器工作的尝试,我遵循了本教程http://myarch.com/create-jax-ws-service-in-5-分钟手动编写一个示例,这非常棒。
这会产生 4 个类文件和一个 WSDL 文件。
所以我的愚蠢问题是如何在 eclipse 和/或 tomcat 上“运行”服务?
我尝试将它们部署为 Web 应用程序,但没有任何乐趣 - web.xml 中没有任何内容可以告诉 servlet 引擎 Web 服务存在,所以我猜它永远无法工作。
我是否必须在 tomcat 中拥有一个特殊的 Web 服务容器(例如 axis2、metro 或 CXF)并部署到该容器?或者它可以只使用一些 jax-ws jars + 神秘配置运行吗?
我不想安装到 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 webservices 系统,是否值得尝试弄清楚?
非常欢迎任何建议。我必须用 google 搜索 1000 个页面来寻找 Web 服务的圣杯 - 即如何创建一个页面并将其端到端地部署到 tomcat。应该这么难吗?
将此片段添加到您的web.xml file
<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 等)应该位于您的类路径中。您可以从以下位置下载 jax-ws 库here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)