gpt4 book ai didi

java - 为什么 Tomcat 7x 不需要在 web.xml 中配置 WSServletContextListener 和 WSServlet 来部署 Jax-ws 服务?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:01:59 26 4
gpt4 key购买 nike

我正在使用 jaxws-ri- 在 Tomcat6xTomcat7x 中部署和测试一个简单的 Jax-ws 服务 2.2.8 添加到两个服务器 lib 目录。
Tomcat6x 需要 WSServletContextListenerWSServlet 并在 web.xml 中配置,而在 Tomcat 7x 中> 在没有 WSServletContextListenerWSServlet 配置的情况下部署 Web 服务。
Tomcat7 中有什么不同使得 web.xml 配置可选?

最佳答案

如果您使用的是 Tomcat 7.x 和 Servlet 3.0,监听器 com.sun.xml.ws.transport.http.servlet.WSServletContextListener 是动态加载的。从 Java EE 6 开始,添加了一个新组件:javax.servlet.ServletContainerInitializer

Interface which allows a library/runtime to be notified of a web application's startup phase and perform any required programmatic registration of servlets, filters, and listeners in response to it.

文件 jaxws-rt.jar 在 \META-INF\services 中包含一个名为 javax.servlet.ServletContainerInitializer 的简单文件文本,只有一行:

com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer

这是加载所需监听器的完全限定类名。

另见 Using Servlets 3.0 ServletContainerInitializer .

关于java - 为什么 Tomcat 7x 不需要在 web.xml 中配置 WSServletContextListener 和 WSServlet 来部署 Jax-ws 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22456236/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com