Вам понадобится дескриптор развертывания EJB в test.jar/META-INF/ejb-jar.xml
, а дескриптор развертывания EAR должен перейти на your.ear/META-INF/application.xml
( NOT внутри EJB jar!).
Файл ejb-jar.xml будет содержать что-то вроде следующего фрагмента XML для ваших EJB:
<enterprise-beans>
<session>
<ejb-name>MyCoolEJB</ejb-name>
<local-home>test.TestHome</local-home>
<local>test.Test</local>
<ejb-class>test.TestEJB</ejb-class>
</session>
<!-- ... more <session/> or <entity/> entries ... -->
</enterprise-beans>
Я сам работал с EJB3, где все немного по-другому, и у вас больше нет домашних интерфейсов. Так что возьмите мой пример с крошкой соли.
Внутри web.xml у вас должна быть соответствующая ссылка на EJB:
<ejb-local-ref>
<ejb-ref-name>TheJNDINameOfYourEJB</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<ejb-link>MyCoolEJB</ejb-link> <!-- the value from <ejb-name/> above -->
</ejb-local-ref>
<ejb-link/>
указывает на соответствующий <ejb-name/>
вашего EJB, если ваша ссылка находится в том же JAR, что и ваш EJB. В противном случае вам придется предварительно отрендерить имя JAR, например, <ejb-link>test.jar#MyCoolEJB</ejb-link>
.
Затем в вашем сервлете вы можете выполнить поиск JNDI для "java: comp / env / TheJNDINameOfYourEJB", чтобы получить доступ к домашнему интерфейсу вашего EJB. Надеюсь, это дало вам несколько советов, чтобы глубже вникнуть в себя.
Кстати: если EJB 2.x не является фиксированным требованием, взгляните на EJB 3.x. В этой версии много чего стало проще!