Избегайте ошибок поиска JNDI во встроенном Payara - PullRequest
0 голосов
/ 30 марта 2020

У меня ошибка в Payara Embedded. Развертывание на работающем, не встроенном сервере работает. Если я добавлю 2 файла WAR в один EAR и разверну этот файл EAR, развертывание завершится неудачно. Я отладил ошибку в методе GlassfishNamingManagerImpl # lookup (String, String, Context), там он ищет в WAR «MyApp» класс, который является частью WAR «Hub», что приводит к исключению. Причина может заключаться в том, что я включаю модуль с именем «Logi c» в обе WAR-ы, что никогда не было проблемой на обычном сервере.

Ошибка, кажется, возникает в сложных установках, и мой код является закрытым исходным кодом , поэтому c проблематично загрузить код или привести простой пример. Но я надеюсь, что у кого-то есть идея и она скажет мне, что я могу избежать этой ошибки. Мой glassfi sh -приложение. xml выглядит так, есть ли возможность что-то изменить?:

<glassfish-application>
    <module>
        <!-- Hub -->
        <web>
                <!-- Class of Hub WAR searched: Found -->
            <web-uri>Hub-${project.version}.war</web-uri>
            <context-root>/hub</context-root>
        </web>

        <!-- MyApp -->
        <web>
                <!-- Class of Hub WAR searched: Not found -->
            <web-uri>MyApp-${project.version}.war</web-uri>
            <context-root>/app</context-root>
        </web>
        <web>
            <web-uri>Monitor-${project.version}.war</web-uri>
            <context-root>/monitor</context-root>
        </web>
    </module>
</glassfish-application>

Исключение составляет

java.lang.IllegalStateException:
Exception attempting to inject Remote ejb-ref name=de.hub.receive.filter.ErrorFilter/logService,Remote 3.x interface =de.service.logmessage.LogMessageService resolved to intra-app EJB LogMessageBean in module
Logic-1.3.4.0-SNAPSHOT.jar,ejb-link=Logic-1.3.4.0-SNAPSHOT.jar#LogMessageBean,lookup=,mappedName=,jndi-name=java:global/BackendIntegrationTestsAllInOne/Logic/LogMessageBean,refType=Session into class de.hub.receive.filter.ErrorFilter:
Lookup failed for 'java:comp/env/de.volkswagen.carsharing.hub.receive.filter.ErrorFilter/logService' in 
SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming}
...