Проблема развертывания приложения на JBOSS с несколькими источниками данных - PullRequest
1 голос
/ 19 марта 2019

Привет. Я пытаюсь развернуть два военных файла на JBOSS EAP 7.1. Оба они являются приложениями с весенней загрузкой, для которых я настроил JNDI. Мой файл Standalone.xml выглядит примерно так ...

 <datasources>
            <datasource jndi-name="java:/JNDI1" pool-name="JNDIPool1" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql://localhost:3306/test_schema</connection-url>
                <driver>mysql</driver>
                <security>
                    <user-name>test1</user-name>
                    <password>test1</password>
                </security>
            </datasource>
            <datasource jndi-name="java:/JNDI2" pool-name="JNDIPool2" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql://localhost:3306/test_schema_2</connection-url>
                <driver>mysql</driver>
                <security>
                    <user-name>test2</user-name>
                    <password>test2</password>
                </security>
            </datasource>
            <drivers>
                <driver name="mysql" module="com.mysql"/>
            </drivers>
        </datasources>

Каждый из этих файлов войны использует различный поиск JNDI. Когда я развертываю их одновременно, одна из войн развертывается там, где другая терпит неудачу со следующей ошибкой. Любая помощь будет оценена. Спасибо.

     ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."Test.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."TEST.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "TEST.war"
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:172)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:2032)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1955)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.jboss.msc.service.DuplicateServiceException: Service jboss.undertow.deployment.default-server.default-host./.session is already registered
    at org.jboss.msc.service.ServiceRegistrationImpl.setInstance(ServiceRegistrationImpl.java:158)
    at org.jboss.msc.service.ServiceControllerImpl.startInstallation(ServiceControllerImpl.java:235)
    at org.jboss.msc.service.ServiceContainerImpl.install(ServiceContainerImpl.java:768)
    at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:223)
    at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2555)
    at org.jboss.msc.service.ServiceTargetImpl.install(ServiceTargetImpl.java:223)
    at org.jboss.msc.service.ServiceControllerImpl$ChildServiceTarget.install(ServiceControllerImpl.java:2555)
    at org.jboss.msc.service.ServiceBuilderImpl.install(ServiceBuilderImpl.java:317)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentProcessor.lambda$processDeployment$0(UndertowDeploymentProcessor.java:405)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Unknown Source)
    at java.util.stream.ReferencePipeline$Head.forEach(Unknown Source)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentProcessor.processDeployment(UndertowDeploymentProcessor.java:405)
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentProcessor.deploy(UndertowDeploymentProcessor.java:190)
    at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:165)
    ... 5 more

1 Ответ

2 голосов
/ 19 марта 2019

Пожалуйста, выделите разные корни контекста для каждого приложения в web.xml.Я предполагаю, что вы используете по умолчанию <context-root>/</context-root>, вызывая DuplicateServiceException для второй войны.Измените его на <context-root>/app1</context-root> & <context-root>/app2</context-root>

...