我在Tomcat 7中将一个Web应用程序部署为WAR文件。该应用程序被构建为一个多模块项目:
通常,我们可以将JSP文件放在webapp项目中,并相对于上下文引用它们:
/WEB-INF/jsp/someMagicalPage.jsp
问题是我们如何处理特定于客户扩展项目的JSP文件,但不应始终将其包含在WAR中。不幸的是,它似乎无法在JAR文件中引用JSP。尝试classpath:jsp/customerMagicalPage.jsp
导致在JspServlet中找不到文件,因为它使用ServletContext.getResource()
。
传统上,我们“解决”了让行家打开客户扩展JAR的包装,找到JSP,然后在构建时将它们放入WAR中的问题。但是理想的情况是,您只需在Tomcat中爆炸的WAR中放置一个JAR即可发现该扩展名-该扩展名除了JSP以外都适用。
反正有解决办法吗?标准方法,特定于Tomcat的方法,hack或解决方法?例如,我一直在考虑在应用程序启动时解压缩JSP ...
Tomcat 7支持的Servlet 3.0包括将jsps打包到jar中的功能。
你需要:
META-INF/resources
jar的目录中web-fragment.xml
在META-INF
您的jar目录中包含一个WEB-INF/lib
您的战争目录中然后,您应该能够在上下文中引用您的jsps。例如,如果您有一个jsp META-INF/resources/test.jsp
,则应该可以在上下文的根目录中引用它,如下所示:test.jsp
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句