有没有办法为我的 Web 应用程序配置特定设置,这些设置仅在 Tomcat 下运行时应用和执行?
我们使用 Tomcat 6.0.29 作为 Eclipse Helios 下的开发环境,因为开发人员可以快速轻松地使用它,但通常会将 Java EE 6 容器(Weblogic、Websphere、JBoss 等)用于生产环境。
我遇到的具体问题是,对于在 Tomcat(非 Java EE 服务器)下运行的 JAX-WS 服务,我需要向 web.xml (com.sun.xml.ws.transport.http.servlet. WSServletContextListener) 和我编写的每个 Web 服务类的 servlet 引用。如果使用真正的 Java EE 6 容器,我不必这样做,因为它会根据 @WebService 注释在 EAR 部署时自动部署 Web 服务。
对于其他应用服务器,我可以将 jboss-web.xml、geronimo-web.xml 和 weblogic.xml 等文件放在 WEB-INF 下,但是 Tomcat 是否存在类似的东西?
最佳答案
2个解决方案
使用自定义监听器来检测您是否正在运行 tomcat,如果您正在运行 tomcat - 然后实例化 WSServletContextListener 并调用其 init 方法。
编辑 CATALINA_BASE/conf/web.xml 并添加监听器 - 但这将用于该实例上的所有网络应用
关于Tomcat 特定的 web.xml 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4817476/