您好,在我们的项目中,我们正在使用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罐都是一样的。 请帮我解决这个问题....请...................
答案 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