2014-01-12 4 views
0

Есть ли способ использовать проект ejb 2.x в качестве jar в проект Java EE 6?Как добавить ejb 2.1 в java ee 6

Я использую Rational Application Developer в качестве IDE. Я могу добавить проект ejb 2.x как банку Java EE Utility. И вручную добавьте ссылку на application.xml после того, как при развертывании на сервере ejb jar автоматически запускается сервером.

Я хочу создать новый проект, совместимый с Java EE 6 (без application.xml, без web.xml, используя аннотацию). Однако я должен использовать проект ejb 2.x как банку. Мой вопрос: как я могу выполнить эту задачу.

Заранее спасибо за ответы

+0

Пожалуйста, забудьте, что EJB 2.x когда-либо существовал и использует EJB 3.x. 2.x была настоящей болью, и это не стоит того, так как новая, значительно упрощенная спецификация (3.x) была опубликована почти 8 лет. –

+0

Спасибо Стефано. Проект ejb 2.x не принадлежит мне, но я должен его использовать. миграция планируется владельцем проекта, но у меня есть проблема времени. – mbsau

+0

Это вопрос о RAD (если да, добавьте тег 'rad' в начало списка), или это вопрос о Java EE 6 вообще? Если последний, вы добавляете модуль EJB 2.x так же, как и любой другой модуль: просто включите его в EAR. Поскольку это модуль EJB 2.x, он должен иметь 'ejb-jar.xml', поэтому, если у вас нет' application.xml', он будет обнаружен автоматически. –

ответ

0

Вы можете использовать EJB 2.1 и 3.x параллельно, мы также имеем, что в приложении, которое является довольно несколько лет и до сих пор не полностью мигрировали.

Для старых частей вам по-прежнему нужна такая же настройка со всеми дескрипторами развертывания, как указал @bkail.

Но если возможно, я настоятельно рекомендую не смешивать вещи, если у вас есть шанс создать современное приложение на основе JavaEE 6. Лучше попробуйте взаимодействовать со старыми частями, которые по-прежнему необходимы, и сохраняйте их как отдельное приложение и используйте старые EJB или вводите временный интерфейс между старым и новым приложением до его переноса.

+0

Если An ejb2.x bean (BeanA) использует другой ejb (BeanB), BeanA должен ссылаться на BeanB в ejb-jar.xml. Но в Ejb 3.1 эта задача выполняется с помощью аннотации @EJB. Я думаю, что метод Lookup должен использовать в случае доступа к Bean2.x из Bean3.1. Я не использую непосредственно EJB 2.x bean в моем новом проекте EJB 3.1. Я использую класс оболочки, который обертывает компонент ejb. Но в это время поиск не удался с 3.1 до 2.x ejb. Как исправить проблему поиска? – mbsau

+0

Вы можете напрямую вставлять бобы 2.x в компонентный компонент 3.1, используя имя (JNDI) конкретного контейнера, под которым оно зарегистрировано. См. Пример [здесь] (https://community.oracle.com/message/6604754). Вот что я имел в виду, пытаясь связать его, вместо этого вставляя оба в одно приложение. –

+0

Я понял, что когда сервер перезапускает приложение Websphere. Сервер (WAS) регистрируется следующим образом ... Место привязки: ejblocal: ejb/tr/gov/system/ejb/SystemUtilitiesManagerLocalHome .... Место привязки: java: global/AsyncMessagingEAR/SystemEJB/SystemUtilitiesManager! Tr. gov.system.ejb.SystemUtilitiesManagerLocalHome Я использую первый для поиска. Является ли этот подход глобальным или специфичным для WAS. – mbsau

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