我必须将哪些 jar 文件放入 lib 文件夹中才能使这些导入语句起作用?

问题描述 投票:0回答:1

我正在学习 Struts2 教程。它告诉我导入列出的类。但它没有告诉我将哪些 jar 文件放入

WEB-INF
文件夹下的 lib 文件夹中。

这些是我的操作类中的导入语句:

import com.opensymphony.xwork2.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

我的 lib 文件夹中有以下 jar 文件。但显然这些还不够。

Commons-IO 2.2
Commons-lang3-3.0
Commons-logging-1.1.3
Commons-fileupload-1.2
Freemarker-2.3.19
Javaassist- 3.12.1 GA
Ognl-3.0.6
Sqljdbc4
Org.apache.commons.io-2.4
Struts2-core 2.3.16
Xwork-core 2.3.16

有人可以告诉我应该将哪些 jar 放入 lib 文件夹中吗?

java web-applications jar struts2
1个回答
0
投票

在导入语句中您使用的是 servlet API。因此,您需要添加 Java EE 依赖项。但它应该仅在编译时在类路径上可用。这意味着您应该将此 jar 添加到构建路径,而不是添加到

WEB-INF/lib
。 Servlet API jar 包含在每个运行 servlet 容器的 Web 服务器中。在部署应用程序之前,这些类已由 Web 服务器加载。并且不允许加载它们两次。这就是为什么你不应该把它们放在
WEB-INF/lib
。您应该使用 Java EE 包中的什么

javax.servlet.jar
javax.servlet.jsp.jar
javax.servlet.jsp.jstl.jar

如果您不使用 Maven,您也可以检查 this 答案来获取有关 Struts2 项目使用的库的线索。

如果您使用 Maven,请使用范围为

provided
的 jar。更多详情请参见这里

最后,您在导入中使用 Struts 1 类,因此如果您想在 Struts2 项目中使用这些类,那么您还需要额外

struts2-struts1-plugin-2.3.16.jar
struts-core-1.3.10.jar 
© www.soinside.com 2019 - 2024. All rights reserved.