今天除錯的時候遇到一個錯誤,往Jboss的deploy目錄扔war包的時候,報了一個“Failed to create a new SAX parser”的錯誤。在網上找了找解決方案,一般都說將專案中的xerces-2.6.2.jar和xml-apis.jar包刪掉即可,但是我試了試刪了還是不行,因為在打包的時候Maven還是會將它們打進你的war包。
首先,我的專案中用到了dwr,dwr預設依賴這兩個包,因此pom檔案會在你引入dwr的時候關聯這兩個包,所以你只是從專案的lib庫裡刪除掉是沒用的,因為在打包的時候,Maven還是會根據pom檔案裡的依賴關係把它們打進去。解決的辦法很簡單,步驟如下:
1,開啟pom檔案,點選“Dependency Hierarchy”選項卡;
2,在上面的框裡分別輸入剛才的兩個包名;
3,右擊相應的包,選擇“Exclude Maven artifactId”選項。
見下圖:
之後pom檔案會在對dwr的引用中多幾行程式碼:
<exclusions> <exclusion> <artifactId>xercesImpl</artifactId> <groupId>xerces</groupId> </exclusion> <exclusion> <artifactId>xml-apis</artifactId> <groupId>xml-apis</groupId> </exclusion> </exclusions>
意思就是去除了對上面兩個jar的依賴。然後打包,部署,又見到了可愛的successfully。問題解決了,又可以愉快的寫程式碼去了,哦也!