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包一樣 的打包配置,如下圖:
新增後重新執行,即可,如下圖,成功執行: