将库从WAR移到EAR可能非常有用,例如,如果一个EAR内有多个WAR ,则可以避免库的冗余。
注意:在Struts2中使用多个WAR时,您 可能 在某些应用程序服务器中遇到问题:请阅读官方文档中的更多内容。
要使Skinny WAR(没有库的WAR)正常工作,条件是:
WAR
meta-INF/MANIFEST.MF
必须包含链接您的库的Class-Path属性:Class-Path: lib/struts2-core-2.3.15.2.jar lib/xwork-core-2.3.15.2.jar lib/all_your_libraries_here...
EAR
application.xml
必须包含:
<library-directory>lib</library-directory>。
为了在Maven上实现此条件,而无需声明EAR的POM.xml中WAR的POM.xml的每个库的依赖性,您可以使用此惊人的技巧。
就是说,问题中报告的问题是由于
TLD仅在WAR上执行查找,而EAR不在范围内 (AFAIK,无法在EAR中查找TLD,但我想被证明是错误的)。
解决方案:
提取struts-tags.tld
从struts2-core-2.3.x.x.jar
,并将其放置在(各)
WAR/WEB-INF
文件夹。 这与JAR中的任何类型的TLD文件有关,而不仅与Struts2有关。
在JSP中:
<%@ taglib prefix="s" uri="/WEB-INF/struts-tags.tld" %>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)