2012-01-26 2 views
-1

С:Как разоблачить EJB3.0 сеансные для настольного приложения в Weblogic 11g

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

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

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

Разъяснение: У меня есть сервер WebLogic работает, НЕ подвергая некоторые EJB внутри уха, размещенного на этом сервере. В частности, сервер не раскрывает имена сессионных компонентов EJB3.0, в то время как он раскрывает имена некоторых других имен EJB2.1. Как получить ссылку на объекты EJB3.0, размещенные на моем сервере, из моего настольного приложения?

ДАЛЕЕ Разъяснение: Weblogic В частности, не подвергать имена EJB3.0 внутри JNDI, так как характеристики EJB3.0 этого не требуют.

+0

Что вы подразумеваете, что WebLogic не показывает JNDI-имена EJB 3.0? Вы создали и развернули необходимый ejb-jar.xml? Исправьте серверную часть, затем используйте EJB в своем настольном приложении, просмотрев его в Начальном контексте. – Perception

+1

Проблема может заключаться в том, что, хотя спецификация EJB 3 позволяет показывать EJB через RMI/IIOP, она не требует этого, и некоторые контейнеры в настоящее время предоставляют только локальные EJB (например, JBoss AS7). Возможно, WebLogic находится в одной корзине. –

+0

Да, это то, что ... Weblogic НЕ ИСПОЛЬЗУЕТ имена EJB3.0, потому что спецификация не требует этого. –

ответ

0

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

Это то, что мой 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 дескрипторы развертывания, как представляется, o 2 места, где требуется указать экспозицию EJB через JNDI.

Смежные вопросы