Как представить EJB сессии EJB3.0 для настольного приложения в Weblogic 11g - PullRequest
0 голосов
/ 26 января 2012

Поскольку:

  • @EJB не работает в настольных приложениях, поскольку нет контейнера,
  • Weblogic не предоставляет через JNDI имена EJB-компонентов (3.0),
  • Я ничего не нашел в официальной документации уже несколько дней,

Кто-нибудь знает, как я могу использовать EJB из настольного приложения?

Я получил подсказки, что мне нужно изменить web.xml ... но что тогда web.xml, их больше, и по крайней мере некоторые из них ломают мое приложение.

Уточнение: У меня запущен сервер WebLogic, НЕ выставляющий некоторые EJB внутри EAR, размещенного на этом сервере.В частности, сервер не отображает имена EJB3.0 Session bean-компонентов, в то время как он ОБЪЯВЛЯЕТ имена некоторых других имен EJB2.1. Как получить ссылку на объекты EJB3.0, размещенные на моем сервере, из моего настольного приложения?

ДАЛЕЕ Уточнение: Weblogic Специально не раскрываетимена EJB3.0 в JNDI, потому что спецификации EJB3.0 не требуют этого.

1 Ответ

0 голосов
/ 26 января 2012

Чтобы ответить на мой собственный вопрос (получил его после некоторых усилий), чтобы выставить объект EJB3.0 через удаленный интерфейс на сервере Weblogic 11g, необходимо выполнить следующие шаги:

Вот что мой ejb-jar.xml говорит о бобе RolyBean:

<enterprise-beans>       
    <session id="Session_Roly">
      <display-name>Roly</display-name>
      <ejb-name>Roly</ejb-name>
      <remote>com.medicon.server.RolyRemote</remote>
      <ejb-class>com.medicon.server.RolyBean</ejb-class>
      <session-type>Stateless</session-type>
    </session>
  </enterprise-beans>

Это то, что weblogic-ejb-jar.xml (в том же каталоге) говорит:

<wls:weblogic-enterprise-bean>
    <wls:ejb-name>Roly</wls:ejb-name>
<wls:jndi-name>Roly</wls:jndi-name>
</wls:weblogic-enterprise-bean>

Похоже, что эти 2 дескриптора развертывания - единственные 2 места, где требуется указать экспозицию EJB через JNDI.

...