У меня есть 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 вместо конкретного приложения?