IDEA 搭建 Struts2 项目(二)
本次介绍的 IDEA 搭建Struts项目与上一篇我们利用 IDEA MAVEN 搭建有所不同,这次我们使用 IDEA自带的框架,IDEA 将自动为我们导入jar 包,并配置相应的项目结构,但是会有一些问题,我们在这里给出解决方案。
1.IDEA 搭建Struts项目步骤
新建项目:
File -> new project -> java -> javaee(勾选 webapplication 及 struts 框架,并选择download方式加载libarary )
项目结构:
配置Tomcat ,点击运行
2. 报错一: 找不到 struts 的Jar包
这是我们发现,tomcat 启动之后,控制台报错,下面是主要报错信息,详细报错见附录一
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
错误原因:
jar 包路径 放在 lib里,这样导致 IDEA 打包时,没有打包到 web-inf/lib 路径下,所以Tomcat 会报错
解决方案:
我们可以直接 将 jar 包 放到 WEB-INF/lib 路径下
可以在 IDEA下设置,让 IDEA在打包的时候,将jar 包打包 到 WEB-INF/lib 路径下,下面介绍:
FILE -> Project Structure中设置。
经过上面步骤,我们重启,就会发现,已经打包 到了 WEB-INF/lib 路径下
3.报错二,缺少 javassist 包
上面步骤后,我们重新运行,提示出现了 新的错误,主要错误信息如下:
Caused by: java.lang.ClassNotFoundException: javassist.ClassPool
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1104)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:166)
错误原因:
使用maven 就简单多了,maven 把依赖处理的很好,但是直接使用 IDEA 的framework 引入jar 可能没有那么全,所以需要我们再次手动引入 javassist 包, 并配置 到 WEB-INF\lib 路径下。
解决方案:
我们从IDEA maven 中搜索响应的jar 包。
同样道理,我们对 javassist 的jar 包 进行 和 struts jar包一样 的打包配置,如下图:
添加后重新运行,即可,如下图,成功运行: