最近在学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,运行成功:
框架搭建完成,撒花~~