今天调试的时候遇到一个错误,往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”选项。
见下图:
![](https://box.kancloud.cn/2016-08-18_57b562676ae0e.jpg)
之后pom文件会在对dwr的引用中多几行代码:
~~~
<exclusions>
<exclusion>
<artifactId>xercesImpl</artifactId>
<groupId>xerces</groupId>
</exclusion>
<exclusion>
<artifactId>xml-apis</artifactId>
<groupId>xml-apis</groupId>
</exclusion>
</exclusions>
~~~
意思就是去除了对上面两个jar的依赖。然后打包,部署,又见到了可爱的successfully。问题解决了,又可以愉快的写代码去了,哦也!