And*_*ios 3 java ear struts2 war jakarta-ee
在 Java EE 项目中,我将所有库WAR/WEB-INF/lib从EAR/lib.
打开JSP,现在出现以下错误:
Struts 检测到未处理的异常:
消息:
未找到文件“/struts-tags”
文件:org/apache/jasper/compiler/DefaultErrorHandler.java
行号:51Run Code Online (Sandbox Code Playgroud)Stacktraces org.apache.jasper.JasperException: File "/struts-tags" not found ........... ...........
如何解决这个问题?
将库从 WAR 移动到 EAR 可能非常有用,例如,如果一个 EAR 中有多个 WAR*,可以避免库冗余。
* 注意:Struts2中存在多个WAR,您可能会在某些应用服务器中遇到问题:请阅读官方文档了解更多内容。
要使Skinny WAR(没有库的 WAR)工作,条件是:
WARMETA-INF/MANIFEST.MF必须包含链接您的库的类路径属性:
Class-Path: lib/struts2-core-2.3.15.2.jar
lib/xwork-core-2.3.15.2.jar
lib/all_your_libraries_here...
Run Code Online (Sandbox Code Playgroud)EARapplication.xml必须包含:
<library-directory>lib</library-directory>。
要在Maven上达到这个条件,不需要在EAR的POM.xml中声明WAR的POM.xml的每个库的依赖关系,就可以使用这个神奇的技巧。
也就是说,问题中报告的问题是由于TLD仅在 WAR 上执行查找,EAR 超出范围
(AFAIK,无法在 EAR 中查找 TLD,但我想被证明是错误的)。
解决方案:
提取struts-tags.tldfrom struts2-core-2.3.x.x.jar,并将其放在(每个)WAR/WEB-INF 文件夹下。 这与 JAR 内的任何类型的 TLD 文件相关,而不仅仅是 Struts2。
在 JSP 中:
<%@ taglib prefix="s" uri="/WEB-INF/struts-tags.tld" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3600 次 |
| 最近记录: |