Можно ли использовать системную переменную свойства Java в атрибуте XInclude href? - PullRequest
0 голосов
/ 10 октября 2019

Я использую функцию ActiveMQ Artemis split broker.xml и включаю XML-файл. Я пытаюсь использовать системное свойство Java для пути к файлу XML. Но это выдает ошибку.

Вот строка, которую я пробую.

<xi:include href="${amq.conf.broker.config}/broker-security-settings.xml"/>

Я определил отдельно -Damq.conf.broker.config=/var/amq/....

Получение следующей ошибки

[Fatal Error] :116:82: An include with href '${amq.conf.broker.config}/broker-security-settings.xml'failed, and no fallback element was found.
org.xml.sax.SAXParseException; lineNumber: 116; columnNumber: 82; An include with href '${amq.conf.broker.config}/broker-security-settings.xml'failed, and no fallback element was found.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at org.apache.activemq.artemis.utils.XMLUtil.readerToElement(XMLUtil.java:84)
    at org.apache.activemq.artemis.utils.XMLUtil.streamToElement(XMLUtil.java:57)
    at org.apache.activemq.artemis.utils.XMLUtil.urlToElement(XMLUtil.java:66)
    at org.apache.activemq.artemis.core.config.FileDeploymentManager.readConfiguration(FileDeploymentManager.java:70)
    at org.apache.activemq.artemis.integration.FileBroker.start(FileBroker.java:61)
    at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:85)
    at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:150)
    at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:98)
    at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
    at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)
java.lang.NullPointerException
    at org.apache.activemq.artemis.integration.FileBroker.getServer(FileBroker.java:131)
    at org.apache.activemq.artemis.cli.commands.Run.execute(Run.java:112)
    at org.apache.activemq.artemis.cli.Artemis.internalExecute(Artemis.java:150)
    at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:98)
    at org.apache.activemq.artemis.cli.Artemis.execute(Artemis.java:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.activemq.artemis.boot.Artemis.execute(Artemis.java:129)
    at org.apache.activemq.artemis.boot.Artemis.main(Artemis.java:49)

1 Ответ

1 голос
/ 10 октября 2019

ActiveMQ Артемида в настоящее время не поддерживает использование подстановки системных свойств в href элемента include. Тем не менее, это кажется хорошей функцией, поэтому я открыл для нее новую JIRA и отправил PR .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...