无法加载实现由 http://www.w3.org/2001/XMLSchema 指定的模式语言的 SchemaFactory

No SchemaFactory that implements the schema language specified by: http://www.w3.org/2001/XMLSchema could be loaded

当尝试在 CXF DOSGi 中使用 Aegis 数据绑定公开服务时,我在 Java 8 中收到此错误。在 java 7 中它工作正常。

原因:java.lang.IllegalArgumentException:无法加载实现由 http://www.w3.org/2001/XMLSchema 指定的模式语言的 SchemaFactory 在 javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:215) 在 org.apache.cxf.aegis.type.XMLTypeCreator.(XMLTypeCreator.java:122)

See full stacktrace here

我认为原因是代码没有看到impl class com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory

有什么解决办法吗?

顺便说一句。 运行 Java 8.

中的 CXF-DOSGi 构建可以观察到异常

我还没有找到真正的解决方案。现在我已经在 CXF master 上提交了一个解决方法来忽略静态代码中的这个异常。因此,Aegis 绑定未经过架构检查,但至少可以正常工作。参见 CXF-6959

如果有任何提示可以使它再次完全正常工作,我会很高兴。