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

我试图在Tomcat上部署基于JAX-WS的Web服务时最小化所需的配置。随着Servlet 3.0的引入(Tomcat

7+支持),web.xml可以扔掉,但仍然存在sun-

jaxws.xml。这篇博客文章很有趣:

当然,通过使用jax-ws批注,甚至可以将配置sun-jaxws.xml设为可选,使其完全不包含描述符,但这需要指定默认的url-

pattern(例如JSR-109)或自定义模式(例如Jersey REST) JAX-WS规范中的服务。

有可能避免sun-jaxws.xml在Tomcat上运行,如何避免?

回答:

可悲的是,该配置 存在 于某处 。根据消息来源,这是强制性的。信不信由你,sun-

jaxws.xml文件的位置被硬编码为/WEB-

INF/sun-jaxws.xml(谢谢,伙计们@ Metro)。

  • public final class WSServletContextListener

  • public class WSServlet


  1. WSServletContextListener显然不会扩展。该侦听器根据sun-jaxws.xml和jaxws-catalog文件执行大多数初始化。就像我之前提到的,位置是硬编码的。因此,您这里阻力最小的方法是

    • 实现自己的香草servlet监听器(使用@WebListener)并调用new WSServletContextListener()。然后,您将自己的contextInitialized(ServletContext ctxt)contextDestroyed()方法委托给您的实例中的方法WSServletContextListener

    • 使用@XmlRootElement将代表sun-jaxws文件的类动态地在侦听器实例化时生成文件(我将在很短的时间内提供一个示例,现在没有时间:)) 。

IMO带来如此麻烦的麻烦,但从理论上讲应该是可行的。我将写一些示例,然后看它们如何播放。

以上是 Tomcat上没有sun-jaxws.xml的JAX-WS Web服务 的全部内容, 来源链接: utcz.com/qa/419242.html

回到顶部