- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Web 应用程序中将 Java 7 升级到 Java 8 时,我遇到了 Saxon 问题:
javax.xml.xpath.XPathFactoryConfigurationException: java.util.ServiceConfigurationError: javax.xml.xpath.XPathFactory: jar:file:/C:/Users/abc/.m2/repository /net/sf/saxon/saxon-xpath/9.1.0.8/saxon-xpath-9.1.0.8.jar!/META-INF/services/javax.xml.xpath.XPathFactory:2: Illegal configuration-file syntax at java.util.ServiceLoader.fail(ServiceLoader.java:239) at java.util.ServiceLoader.fail(ServiceLoader.java:245) at java.util.ServiceLoader.parseLine(ServiceLoader.java:265) at java.util.ServiceLoader.parse(ServiceLoader.java:307) at java.util.ServiceLoader.access$200(ServiceLoader.java:185) at java.util.ServiceLoader$LazyIterator.hasNextService(ServiceLoader.java:357) at java.util.ServiceLoader$LazyIterator.hasNext(ServiceLoader.java:393) at java.util.ServiceLoader$1.hasNext(ServiceLoader.java:474) at javax.xml.xpath.XPathFactoryFinder$2.run(XPathFactoryFinder.java:345) at javax.xml.xpath.XPathFactoryFinder$2.run(XPathFactoryFinder.java:341) at java.security.AccessController.doPrivileged(Native Method) at javax.xml.xpath.XPathFactoryFinder.findServiceProvider(XPathFactoryFinder.java:341) at javax.xml.xpath.XPathFactoryFinder._newFactory(XPathFactoryFinder.java:212) at javax.xml.xpath.XPathFactoryFinder.newFactory(XPathFactoryFinder.java:137) at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:190)
我将 saxon 升级到 Saxon HE,但它不起作用:
Q{java:org.apache.commons.lang3.StringUtils}isBlank(). Reflexive calls to Java methods are not available under Saxon-HE
at net.sf.saxon.style.StylesheetModule.loadStylesheet(StylesheetModule.java:261) at net.sf.saxon.style.Compilation.compileSingletonPackage(Compilation.java:107) at net.sf.saxon.s9api.XsltCompiler.compile(XsltCompiler.java:785) at net.sf.saxon.jaxp.SaxonTransformerFactory.newTemplates(SaxonTransformerFactory.java:149)
转向获得许可的 Saxon PE 或其他是不可能的:/
我不知道为什么,但应用程序像这样使用 XpathFactory:
XPath xpath = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON).newXPath();
我不知道为什么选择这个对象模型,而不是 OBJECT_MODEL_DOM4J
我想知道是否:
1) 有一些免费的商业用途 saxon 可以在 Java 8 中工作吗?我不必是最新的,我们使用的是 9.1.0.8 或 9.1.0.6J。
2) 这个 NamespaceConstant.OBJECT_MODEL_SAXON 是什么,是否可以从 Saxon 辞职并转移到 OBJECT_MODEL_DOM4J 并使用 dom4j 代替,或者也许还有其他方法可以使用免费库来实现类似的东西?
XPath xpath = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON).newXPath();
xpath.setNamespaceContext(new NamespaceContextMap("a12i", "http://my-application/a12"));
return xpath.compile(MY_XPATH_QUERY);
最佳答案
您可以在此处找到有关此问题的信息
Syntax error in javax.xml.xpath.XPathFactory provider-configuration file of Saxon-HE 9.3
以及从那里引用的各种线程。其本质是 Saxon 的早期版本使用了一种在 Java 5 中有效的服务文件格式(支持 XPathFactory JAXP 搜索机制),但在后续的 Java 版本中不起作用(Saxon 无意中依赖于 Java 中的一个 bug,随后已修复)。
正如您所指出的,从 Saxon-B (9.1) 迁移到 Saxon-HE 可能会出现问题,因为某些功能,特别是自反扩展功能,没有得到保留。但是,有其他方法可以在以后的版本中实现相同的效果,而不会出现与自反扩展函数相关的安全问题。
如果您想坚持使用 Saxon-B (9.1),您可以通过更改 XPathFactory.newInstance() 上的调用以直接实例化 Saxon XPathFactory 来使其在较新的 Java 版本上工作。对象模型的选择与问题无关。
关于java - saxon-xpath-9.1.0.8.jar!/META-INF/services/javax.xml.xpath.XPathFactory :2: Illegal configuration-file syntax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527808/
我的应用程序在 AIX 上出现 xpathfactory 错误,该错误发生在代码 XPathFactory xpf = XPathFactory.newInstance(); 的这一行。但是,它在 W
迁移到 Java 8 后,您可能会看到此错误: javax.servlet.ServletException: java.lang.RuntimeException: XPathFactory#new
我正在尝试运行机器学习工具包 LightSide ( http://lightsidelabs.com/what/research/)。但是,当我运行包含的批处理文件时,它在初始屏幕上崩溃,并且日志包
我正在尝试使用 XPathFactory 来计算 Java 应用程序中的表达式。但是我遇到了撒克逊特有的错误。有一次我使用 Saxon 来实现某些功能,为此我必须设置一个系统属性: System.se
javax.xml.XPathFactory.newInstance() 是线程安全的吗? 我问这个问题是因为我发现它的文档含糊不清。 The JDK 5 docs根本不提线程安全;在 JDK 6他们
我正在尝试从 android(java) 中的 xml 文档中检索一个节点。 XPATH config:Manifest/config:Text[@config:name='site
我在我们的一个实时服务器上不断收到以下异常(其他运行相同代码的服务器似乎没问题): java.lang.RuntimeException: XPathFactory#newInstance() fai
我正在尝试做一些我认为非常简单的事情,只需断言 Xpath 节点的属性是一个特定值。该节点没有值,只有一个属性值,如下:- (将返回“true”或“false”) 这是我的代码: //R
XPathFactory.newInstance(String uri) 的文档是 here 。 我试图让这个失败,如下所示: println(System.getProperty("DEFAULT_
我正在尝试创建一个新的 xpath 工厂实例,它在我的本地机器上运行完美,没有任何问题,但在我的 ubuntu 服务器(16.0)java 1.7 实例中抛出以下错误。 SEVERE: Caught
我在 Mac OS X 和 Saxon-HE 9.3.0.5 上使用 Java SE 6。 ServiceLoader 无法找到 javax.xml.xpath.XPathFactory 的 Saxo
我们的 J2EE/Spring/Mybatis Web 应用程序已经在 Java 7(Centos 上)上运行良好一段时间了,但最近我们尝试将 JVM 更新到 Java 8,现在我们在启动时得到以
在我的 Web 应用程序中将 Java 7 升级到 Java 8 时,我遇到了 Saxon 问题: javax.xml.xpath.XPathFactoryConfigurationException
我是一名优秀的程序员,十分优秀!