Я использую Camel 2.22.1 с springboot 2.0.4.RELEASE.Верблюжий компонент camel-saxon
использует Saxon-HE по умолчанию.У меня есть несколько файлов Xquery, которые вызывают метод Java, поэтому я хочу заменить Saxon-HE на Saxon-PE.Я запросил одну тестовую лицензию для Saxon-PE и попробовал разные способы, но она не заработала.Файл Jax Saxon-PE saxon9pe.jar
уже загружен, однако все еще работает как Saxon HE edition .Я предполагаю, что лицензия не правильно загружена Saxon-PE.
Я пробовал следующие способы, ни один из них не работал.
- положить файл лицензии
saxon-license.lic
и saxon9pe.jar
в той же папке - определите переменную среды SAXON_HOME и поместите
saxon-license.lic
и saxonpe.jar
в SAXON_HOME \ bin - , измените
org.apache.camel.component.xquery.XQueryBuilder.configuration
в классе XqueryBuild.java
, в пакете org.apache.camel.component.xquery
, чтобыset LICENSE_FILE_LOCATION
(Я получил сообщение об ошибке: неизвестное свойство конфигурации http://saxon.sf.net/feature/licenseFileLocation)
Саксонская документация упоминалась для создания файла конфигурации XML, но я не знаю, куда мне поместить этот XMLфайл конфигурации.
При выполнении вызова Xquery с Java я получил сообщение об ошибке:
Caused by: net.sf.saxon.trans.XPathException: Cannot find a 0-argument function named Q{java:java.lang.Double}MAX_VALUE(). Reflexive calls to Java methods are not available under Saxon-HE at net.sf.saxon.query.UnboundFunctionLibrary.bindUnboundFunctionReferences(UnboundFunctionLibrary.java:166) ~[saxon9pe.jar!/:na]
at net.sf.saxon.query.QueryModule.bindUnboundFunctionCalls(QueryModule.java:1172) ~[saxon9pe.jar!/:na]
at net.sf.saxon.expr.instruct.Executable.fixupQueryModules(Executable.java:462) ~[saxon9pe.jar!/:na]
at net.sf.saxon.query.XQueryParser.makeXQueryExpression(XQueryParser.java:176) ~[saxon9pe.jar!/:na]
at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:597) ~[saxon9pe.jar!/:na]
at net.sf.saxon.query.StaticQueryContext.compileQuery(StaticQueryContext.java:658) ~[saxon9pe.jar!/:na]
at org.apache.camel.component.xquery.XQueryBuilder$3.createQueryExpression(XQueryBuilder.java:276) ~[classes!/:2.23.1]
at org.apache.camel.component.xquery.XQueryBuilder.initialize(XQueryBuilder.java:745) ~[classes!/:2.23.1]
at org.apache.camel.component.xquery.XQueryBuilder.evaluateAsDOM(XQueryBuilder.java:190) ~[classes!/:2.23.1]
at org.apache.camel.component.xquery.XQueryBuilder.evaluate(XQueryBuilder.java:151) ~[classes!/:2.23.1]
... 40 common frames omitted
Может кто-нибудь поделиться опытом установки Saxon-PE с верблюдом дляполучить вызов Java, работающий в Xquery?
Спасибо!