При обновлении Java 7 до Java 8 в моем веб-приложении у меня возникла проблема с Saxon:
Q {java: org.apache.commons.lang3.StringUtils} isBlank ().Рефлексивные вызовы методов Java недоступны в Saxon-HE
по адресу net.sf.saxon.style.StylesheetModule.loadStylesheet (StylesheetModule.java:261) по адресу net.sf.saxon.style.Compilation.compileSingletonPackage (Compilation.java:107) в net.sf.saxon.s9api.XsltCompiler.compile (XsltCompiler.java:785) в net.sf.saxon.jaxp.SaxonTransformerFactory.newTemplates (SaxonTransformerFactory.java:143 * 101
1012)
Переход на лицензированный Saxon PE или другой не подлежит обсуждению: /
Я не уверен, почему, но приложение использует XpathFactory так:
XPath xpath = XPathFactory.newInstance(NamespaceConstant.OBJECT_MODEL_SAXON).newXPath();
Я не знаюпочему была выбрана эта объектная модель, а не, например, OBJECT_MODEL_DOM4J
Мне интересно, если:
1) Существует несколько бесплатных для коммерческого использования саксонских, которые будут работать в Java8?Мне не обязательно быть самым новым, мы используем 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);