2014-04-15 2 views
0

Im пытается перенести сеансовый компонент с состоянием из EJB 2.1 в EJB 3.0, домашний интерфейс компонента, который расширяет EJBHome, имеет метод создания с два аргумента и соответствующий компонент имеют соответствующий метод args ejbcreate и еще один метод arg ejbcreate. Мой вопрос is- 1. Нужно ли мне создавать два конструктора, один аргумент arg и один arg, чтобы перенести этот сеансовый сеанс с состоянием? 2. Код метода ejbcreate бросает «CreateException» и исключение времени выполнения, на данный момент ejbcreate определяет броски «CreateException», нужно ли определять конструкторы CreateException в конструкторе или я могу пропустить создание метаданных исключения в код конструктора.Миграция сессионного компонента с состоянием от EJB 2.1 до EJB 3 - как переносить метод создания с аргументами

Другой альтернативы я вижу, писал в одном блоге создает метод и аннотирование с @init, хотя и не уверен, что если это так, как они говорили о клиентом-EJB2 для EJB3 боба.

ответ

0

К сожалению, нет способа указывать аргументы при создании сеансового компонента с состоянием с использованием EJB 3, поэтому вам нужно добавить метод initialize (arg1, arg2) и вызвать его после получения, например, через JNDI.

Только конструктор без аргументов может быть использован в EJB 3.

Да, @Init является эквивалентом ejbCreate при использовании аннотаций для определения зрения клиента EJB 2 при использовании EJB 3 стиля определения компонента.

+0

благодарит за ответ. У меня есть вопрос. Нужно ли аннотировать метод initialize (arg1, arg2) с помощью (@init). Я чувствую, так как это обычный метод метода pojo, мне не нужно его комментировать. Кроме того, у меня нет клиентского вида EJB2. – ajith

+0

№ '@ Init' применим только в том случае, если вы используете клиентский вид EJB 2, и это метод, который будет вызываться home.create (arg1, arg2). –

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