Портирование EJB3 на EJB2 - PullRequest
       74

Портирование EJB3 на EJB2

1 голос
/ 04 декабря 2011

Это странная ситуация. Позвольте мне объяснить это как можно лучше.

У меня есть интерфейс Client, в котором есть методы, которые выдают пользовательское исключение. Мой EJB3 Remote расширяет этот интерфейс Client и был аннотирован @Remote. Мой EJB3 Bean использовался для расширения Remote и был аннотирован @Stateless.

Теперь прибывает странность. Из-за очень специфической проблемы я не могу развернуть jar-файлы EJB3 на моем сервере приложений. (Вопрос не в том, как мне решить эту проблему развертывания.)

Теперь я должен понизить код с EJB3 до EJB2. Поскольку все методы в моем удаленном интерфейсе должны выдавать RemoteException (спецификация EJB2), я больше не могу расширяться от моего Client интерфейса.

Опция, с которой я остаюсь - это создание EJB2Wrapper, который может расширяться от интерфейса Client и в каждом методе, который я вызываю, в удаленный интерфейс.

Это создает уродливый блок try catch для каждого метода, так как мне нужно поймать RemoteException.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

Я бы сказал, что у вас не было бы такой большой проблемы, если бы функциональность ваших бинов начинала жизнь как POJO.Если у вас есть это, вы можете просто развернуть как EJB3, EJB2, сервлет, веб-сервис или что-то еще, что вам нужно.

Возможно, лучшее решение состоит в извлечении пользы из EJB3 в качестве POJO и откладывании вариантов развертывания.до конца.Я бы предпочел это решение EJB2Wrapper.Вы уже должны сделать некоторую работу;Лучше всего инвестировать в то, что будет иметь ценность, даже если в будущем вы решите использовать веб-сервисы REST вместо EJB.

1 голос
/ 25 августа 2012

Отвечая на мой вопрос, чтобы закрыть цикл.

Нет лучшего способа сделать это на данный момент.

...