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.WSServletContextListenercom.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 - 啥时候需要,啥时候不需要?的主要内容,如果未能解决你的问题,请参考以下文章

RequireJS 啥时候需要异步调用?啥时候同步?

Postgres 列名或表名啥时候需要引号,啥时候不需要引号?

Laravel 依赖注入:啥时候需要?啥时候可以模拟 Facades?两种方法的优点?

没有 sun-jaxws.xml 的 Tomcat 上的 JAX-WS Web 服务

Flutter 中 required 和 @required 有啥区别。它们之间有啥区别,我们啥时候需要使用它们?

我啥时候应该考虑使用内存数据库,需要注意啥问题?