今天調試的時候遇到一個錯誤,往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。問題解決了,又可以愉快的寫代碼去了,哦也!