org.xml.sax.SAXNotRecognizedException:无法识别功能“http://javax.xml.XMLConstants/feature/secure-processing”

时间:2013-12-09 14:59:14

标签: xml unix ant jaxb

您好,在我们的项目中,我们正在使用XJC ant任务生成xsd2schema,之后我们正在编译src文件并将它们分组到模式jar中。 我们的类路径是:

jaxb-ri-2.2.6 - jaxb-impl.jar,jaxb-api.jar,jaxb-xjc.jar

这个ant任务在eclipse中运行正常并且jar被创建了,但它在unix环境中抛出了错误。

错误是:

  

java.lang.IllegalStateException:org.xml.sax.SAXNotRecognizedException:无法识别功能“http://javax.xml.XMLConstants/feature/secure-processing”。

当我们将“xercesImpl-2.9.1.jar”添加到unix构建类路径时,该错误消失了,但生成的jar与使用eclipse生成的jar不同。

eclipse build jar-它只有几个类 unix build jar-它有impl文件夹和很多类

在这两种情况下,jaxb罐都是一样的。 请帮我解决这个问题....请...................

6 个答案:

答案 0 :(得分:10)

将位于jre/lib/endorsed文件夹中的xercesImpl jar文件升级或添加到xercesImpl 2.9.1。您只需下载并替换即可。它必须工作。

答案 1 :(得分:6)

你需要jdk 7. JDK 8在maven测试中遇到了这个问题。

答案 2 :(得分:5)

如果您有Maven,请将其添加到pom.xml

<dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.11.0</version>
</dependency>

答案 3 :(得分:3)

将xercesImpl.jar升级到最新版本,并确保它已加载,它将与JDK 8一起使用。

答案 4 :(得分:2)

请将xercesImpl-2.9.1.jar添加到[JDK Path] / jre / lib / endorsed目录中。它将解决Java 1.8的问题

答案 5 :(得分:0)

我遇到了这个问题,因为工作区使用的是JRE而不是JDK