Java 中包含的 JAX-WS 实现?
我有一个JAX-WS Web服务应用程序,它部署为Tomcat 7的WAR文件。它使用最新版本的Metro库,我将其包含在WAR文件中,并且工作正常。
我正在尝试简化部署包。我知道Sun JDK包括Metro的副本(例如,请参阅此问题和此问题),但由于某种原因,显然必须将此Metro副本替换为从玻璃鱼网站下载的副本。我试图了解是否有可能只使用Tomcat和JDK附带的地铁实现,或者如果没有,为什么不呢。
WAR 内容如下(删除了类文件):
META-INF/MANIFEST.MF
WEB-INF/classes/
WEB-INF/classes/com/[et cetera]
WEB-INF/ibm-web-ext.xml
WEB-INF/lib/
WEB-INF/lib/stax-api.jar
WEB-INF/lib/webservices-api.jar
WEB-INF/lib/webservices-extra-api.jar
WEB-INF/lib/webservices-extra.jar
WEB-INF/lib/webservices-rt.jar
WEB-INF/lib/webservices-tools.jar
WEB-INF/sun-jaxws.xml
WEB-INF/web.xml
wsdl/
wsdl/MyService.wsdl
web.xml
部分包含:
<servlet>
<servlet-name>MyService</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet-class>
</servlet>
当我从 WAR 中删除 webservices-* jars--Metro jars-时,Web 服务失败,并显示错误“Wrapper 找不到 servlet 类 com.sun.xml.ws.transport.http.servlet.WSServlet 或它所依赖的类”。这并不奇怪,因为我在Java 7 SE附带的jars中找不到该类。
那么,如果你必须下载Metro的另一个副本才能使这样的东西工作,那么说Java 7附带Metro意味着什么呢?是否可以在Tomcat中仅使用Java附带的jars来运行JAX-WS Web服务?