2014-01-23 29 views
0

我正在學習Struts2教程。它告訴我要導入列出的類。但它不告訴我哪個jar文件放在WEB-INF文件夾下的lib文件夾中。哪些.jars是否必須放在lib文件夾中才能使這些導入語句正常工作?

這些都是import語句,我在我的動作類:

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文件夾罐子。但顯然這些還不夠。

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 

有人能告訴我哪些罐子應該放在lib文件夾中嗎?

+0

哪些類被投擲類沒有發現? – david99world

+0

http://stackoverflow.com/a/21044848/1654265 –

+0

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

回答

0

在導入語句中,您使用的是servlet API。所以,您需要添加Java EE依賴項。但它應該只有編譯時間範圍。這意味着你應該將這個罐子添加到構建路徑,而不是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 

使用您還可以檢查this答案,如果你不使用Maven獲得有關與Struts2的項目中使用的庫線索。

最後,您使用的是進口的Struts 1類,因此,如果你想使用這些類與Struts2的項目,那麼你需要額外

struts2-struts1-plugin-2.3.16.jar 
struts-core-1.3.10.jar 
相關問題