У меня было это в project-defaults.yml :
swarm:
resource-adapters:
resource-adapters:
activemq-rar:
archive: activemq-rar.rar
transaction-support: LocalTransaction
config-properties:
ServerUrl:
value: tcp://amq:61616?jms.rmIdFromConnectionId=true
UserName:
value: myuser
Password:
value: mypw
Теперь я пытаюсь переопределить ServerUrl, UserName и Password переменными среды, чтобы иметь возможность запустить это вразные среды.Мои первые тесты показали, что мне нужно сначала удалить свойства из project-defaults.yml .Я устанавливаю следующие переменные среды:
- SWARM_RESOURCE_DASH_ADAPTERS_RESOURCE_DASH_ADAPTERS_ACTIVEMQ_DASH_RAR_CONFIG_DASH_PROPERTIES_SERVERURL_VALUE=tcp://amq:61616?jms.rmIdFromConnectionId=true
- SWARM_RESOURCE_DASH_ADAPTERS_RESOURCE_DASH_ADAPTERS_ACTIVEMQ_DASH_RAR_CONFIG_DASH_PROPERTIES_USERNAME_VALUE=myuser
- SWARM_RESOURCE_DASH_ADAPTERS_RESOURCE_DASH_ADAPTERS_ACTIVEMQ_DASH_RAR_CONFIG_DASH_PROPERTIES_PASSWORD_VALUE=mypw
Это работает для пароля, но для URL сервера я получаю это, когда приложение пытается запустить:
2019-06-05 13:36:57,867 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 15) MSC000001: Failed to start service jboss.ra.deployment."activemq-rar.rar_activemq-rar": org.jboss.msc.service.StartException in service jboss.ra.deployment."activemq-rar.rar_activemq-rar": WFLYJCA0046: Failed to start RA deployment [activemq-rar.rar]
at org.jboss.as.connector@15.0.1.Final//org.jboss.as.connector.services.resourceadapters.deployment.AbstractResourceAdapterDeploymentService$2.run(AbstractResourceAdapterDeploymentService.java:341)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.base/java.lang.Thread.run(Thread.java:834)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.JBossThread.run(JBossThread.java:485)
Caused by: org.jboss.jca.deployers.common.DeployException: IJ020060: Unable to inject: org.apache.activemq.ra.ActiveMQResourceAdapter property: serverurl value: tcp://amq:61616?jms.rmIdFromConnectionId=true
at org.jboss.ironjacamar.impl@1.4.11.Final//org.jboss.jca.deployers.common.AbstractResourceAdapterDeployer.createObjectsAndInjectValue(AbstractResourceAdapterDeployer.java:1267)
at org.jboss.as.connector@15.0.1.Final//org.jboss.as.connector.services.resourceadapters.deployment.ResourceAdapterXmlDeploymentService$WildFlyRaXmlDeployer.doDeploy(ResourceAdapterXmlDeploymentService.java:190)
at org.jboss.as.connector@15.0.1.Final//org.jboss.as.connector.services.resourceadapters.deployment.ResourceAdapterXmlDeploymentService.start(ResourceAdapterXmlDeploymentService.java:128)
at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1738)
at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1700)
at org.jboss.msc@1.4.5.Final//org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1558)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads@2.3.2.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.base/java.lang.Thread.run(Thread.java:834)
Мы можем видеть, что оно имеетправильное значение URL сервера, но не может его вставить.Как я могу это исправить?Я использую Thorntail 2.4.0.Final и запускаю приложение в контейнере Docker.
Я мог бы использовать несколько конфигурационных файлов yml, но было бы проще использовать переменные среды.
Редактировать:
На самом деле та же проблема с именем пользователя, можно установить только пароль.Это начинает звучать так, как будто работает так, как задумано, позволяя устанавливать только пароль с переменной окружения ...