JBoss 6 - Развернуть ejb в упаковке war

Я пытаюсь использовать новую функцию EJB3.1, в которой можно развернуть EJB, упакованный в файл .war.

Я использую Maven 2.2.1 для упаковки модуля EJB, а затем отбрасываю банку ejb в модуле war (как зависимость). Последняя война содержит простой web.xml без содержимого и библиотеку ejb jar в каталоге lib. Однако, хотя приложение развернуто правильно, аннотированный ejb (@Stateless) не распознается контейнером. У меня нет дескриптора ejb-jar.xml (который я считаю необязательным в EJB3).

Если я развертываю jar-файл ejb самостоятельно (отбрасывая его в каталог развертывания в JBoss), он развертывается с назначенным именем jndi.

Я что-то упустил?


person Gonzalo Garcia Lasurtegui    schedule 06.03.2011    source источник


Ответы (1)


Я нашел проблему в этом. Мой web.xml был версии 2.4:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">
4.xsd" version="2.4">

Однако для развертывания EJB-компонентов в военных пакетах он должен быть не ниже 3.0:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">

В основном это произошло из-за того, что я создавал свой военный модуль с архетипом J2EE Maven.

person Gonzalo Garcia Lasurtegui    schedule 07.03.2011