Понимать разметку ejb-ссылки - PullRequest
2 голосов
/ 30 января 2012

Я прочитал эту замечательную статью о передовой практике для картографирования EJB-JNDI:

http://www.ibm.com/developerworks/websphere/library/bestpractices/increase_app_portability.html

Понятие ejb-link мне не совсем понятно.

Например, допустим, у нас есть ejb-jar.xml, содержащий это:

<ejb-ref>
   <ejb-ref-name>ejb/Bean2Home</ejb-ref-name>
   <ejb-ref-type>Entity</ejb-ref-type>
   <home>com.ibm.wsc.Bean2Home</home>
   <remote>com.ibm.wsc.Bean2</remote>
   <ejb-link>Bean2</ejb-link>
</ejb-ref>

Таким образом, точно определено, что целевым компонентом EJB является Bean2, и эта простая запись означает, что Bean2 должен быть найден в этом пакете приложения J2EE или в файле .ear.

Итак, если разметка ejb-link является достаточным определителем для указания правильного способа ссылки на хороший компонент EJB, зачем ассемблеру создавать имя JNDI для этого ejb-ref?

Это действительно полезно?

Ответы [ 2 ]

2 голосов
/ 06 сентября 2012

Вот некоторые сценарии, которые, как мы надеемся, проясняют, почему привязки <ejb-link/> (или @EJB(beanName="...")) и EJB-ссылки являются полезными и дополняющими:

  1. Приложение само может быть логически разбитона компоненты, и разработчик выбирает использовать EJB для реализации этих компонентов.В этом случае разработчик приложения знает целевой компонент EJB, который клиент хочет использовать.Если существует несколько компонентов, реализующих один и тот же интерфейс, то требуется устранение неоднозначности, и можно использовать <ejb-link/>.

  2. Приложение зависит от внешней службы.В этом случае приложение знает, что оно зависит от внешней службы, поэтому <ejb-link/> нельзя использовать, поскольку реализация службы не существует в том же приложении.

  3. Приложение имеетзависимость от внешнего сервиса, но в том же приложении предусмотрена минимальная реализация.В этом случае разработчик может использовать <ejb-link/>, как в # 1, но у разработчика есть возможность переопределить этот выбор, как в # 2.

1 голос
/ 06 сентября 2012

Это может быть полезно: http://www.theserverside.com/discussions/thread.tss?thread_id=2012

...