Несколько приложений, использующих общий EJB JAR в TomEE - PullRequest
0 голосов
/ 12 марта 2019

У меня есть EJB jar DetailsLookup.jar, который должен использоваться двумя пользовательскими приложениями - VehicleMake.war и VehicleModel.war

Я поместил файл jar EJB в <catalina_base>/lib, а оба файла войны в <catalina_base>/webapps

Когда я развертываю только один из файлов WAR, развертывание успешно, но с двумя файлами WAR я получаю сообщение об ошибке, как показано ниже. Кажется, TomEE пытается развернуть EJB для каждого приложения-потребителя вместо того, чтобы развертывать его только один раз

Caused by: org.apache.openejb.DuplicateDeploymentIdException: Application cannot be deployed as it contains deployment-ids which are in use: app: D:\apache-tomcat\instance1\webapps\VehicleModel
    DetailsLookup
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:790)
    at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:756)
    at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1308)
    ... 32 more

Я также заметил, что при развертывании только VehicleMake.war к имени JNDI для моего EJB также добавляется путь к контексту приложения (который говорит о том, что EJB развернут для каждого проекта и не является общим)

Ожидаемое имя JNDI:

глобальный / DetailsLookup! Com.my.company.details.service.DetailsLookup

Фактическое имя JNDI:

глобальный / VehicleMake / DetailsLookup! Com.my.company.details.service.DetailsLookup

Может ли кто-нибудь помочь мне определить, в чем проблема с развертыванием EJB, и нужно ли мне изменять какие-либо конфигурации, чтобы развернуть его как общий EJB вместо конкретного приложения?

...