最近在學JavaEE,開始搭建Struts 2框架,用的IDE是IntelliJ IDEA,如下爲主要步驟:java
1、新建工程項目:web
①Create New Project => 選擇Java Enterprise => Struts 2(2.5.13) => Download => Next:apache
②爲項目命名=>Finished:tomcat
2、配置tomcat:服務器
點擊Deployment,在Application context中填入自定義訪問路徑名,點擊OK/Apply:框架
3、配置工程項目:3d
進入Project Structure,點擊Artifacts,雙擊Struts2-2.5.13將其添加至WEB-INF下的lib文件夾中,點擊OK:xml
4、配置web.xml文件:blog
當配置web.xml文件時,發現其中filter-class中的類路徑找不到,在觀察以後發現該路徑中ng多於,去掉便可:get
5、配置structs.xml:
實現一個簡單的HelloWorld功能:
在配置完以上環境以後點擊運行,可是發現報出了一大堆錯誤:
觀察出錯緣由,引發報錯的緣由是Caused by: java.lang.NoClassDefFoundError: Lorg/apache/logging/log4j/Logger; 以及Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.Logger;
說明IDEA自動下載的Struts 2的jar包不全,所以去官網(http://struts.apache.org/download.cgi)上下載精簡版Struts 2的jar包,下載完成後從新對工程環境進行配置:
①刪去IDEA下載的包:
②添加下載的包到工程的lib文件夾中(注意要將下載的jar文件放在struts-2.5.13-min-lib\路徑下,而非struts-2.5.13-min-lib\struts-2.5.13\lib\路徑下)選擇Jar Directory:
在配置完以上環境後,重啓服務器,仍然報錯:
Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean
Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name struts has already been loaded by bean
在查閱了一些資料後,分析可知,應該是兩個相同的jar包發生衝突,觀察out文件夾下的WEB-INF中的lib文件夾,發現果真存在重複的JAR包:
刪除多餘的JAR包後再次運行tomcat,運行成功:
框架搭建完成,撒花~~