sun-jaxws.xml - 啥时候需要,啥时候不需要?
Posted
技术标签:
【中文标题】sun-jaxws.xml - 啥时候需要,啥时候不需要?【英文标题】:sun-jaxws.xml - When is it needed and when not?sun-jaxws.xml - 什么时候需要,什么时候不需要? 【发布时间】:2012-09-16 21:35:38 【问题描述】:我对 JAX-WS 进行了高度概述,并注意到一些对 sun-jaxws.xml
的引用(以及 com.sun.xml.ws.transport.http.servlet.WSServletContextListener
和 com.sun.xml.ws.transport.http.servlet.WSServlet
)。
在什么情况下需要这样做? (我认为是 JSR 109 服务器?!)
【问题讨论】:
您在哪里找到这些参考资料? @Puce:例如这里:mkyong.com/webservices/jax-ws/…,以及其他一些地方 相关:***.com/questions/16537821/… 【参考方案1】:sun-jaxws.xml
是使用 SUN 的参考实现将 Web 服务作为标准 WAR
归档部署在非 Java EE5 servlet 容器上时所需的专有部署描述符。
Sun 的 RI 使用 WSServletContextListener
作为 servlet 上下文事件的侦听器,WSServlet
作为调度程序 servlet;两者都必须在web.xml
中声明。然后需要sun-jaxws.xml
文件为WSServlet
定义Web 服务端点,以使其知道必须将服务请求分派到哪个端点。
通过这种方式,Web 服务可以在任何启用了JAX-WS
RI 的 servlet 容器中运行,尽管它们不可移植。
符合 Java EE 5+ 的应用程序服务器(例如 Glassfish, the reference implementation,)符合 JSR 109 (Web services 1.2/1.3
) 和 JSR 224 (JAX-WS 2.0/2.1/2.2
),并且不需要非标准的 sun-jaxws.xml
部署描述符。
更多信息请看这里:
http://jax-ws.java.net/nonav/2.2.1/docs/UsersGuide.html#1.0_Introduction
http://www.ibm.com/developerworks/java/library/j-jws9/index.html
【讨论】:
感谢您的回答。但是有一个问题,“非 Java EE5 servlet 容器”是什么意思?某个版本的 servlet api 还是什么? 我不确定只有 servlet api 版本会有所不同;尽管它绝对很重要(例如注释支持)。我对“非 J2EE servlet 容器”的理解——就本文而言——是在 JBoss AS 7 等 J2EE 5+ 环境中,自动保证 JAX-WS 2.0 支持,但如果您需要在其他环境,例如遗留 servlet 容器,您仍然可以完成这项工作,这是一种选择。当然,今天还有其他一些不错的、甚至更好的实现(例如 Apache CFX)可供您选择。 @JohnDoDo - 这里是关于 servlet 容器和完整 Java EE 应用服务器之间区别的一种解释:***.com/questions/17181292/… 即使在 Glassfish Payara 4.1.1 中也需要 sun-jaxws.xml。所以我不明白你的回答。 有什么方法可以在 sun-jaxws.xml 端点配置中指定端口?以上是关于sun-jaxws.xml - 啥时候需要,啥时候不需要?的主要内容,如果未能解决你的问题,请参考以下文章
Postgres 列名或表名啥时候需要引号,啥时候不需要引号?
Laravel 依赖注入:啥时候需要?啥时候可以模拟 Facades?两种方法的优点?
没有 sun-jaxws.xml 的 Tomcat 上的 JAX-WS Web 服务