Как я могу перенести сессионные EJB2-компоненты без состояния в EJB3 по частям? - PullRequest
4 голосов
/ 11 июня 2009

Спецификация EJB3 указывает, что EJB2 и EJB3 могут сосуществовать в одном приложении.

Я хочу перенести мои EJB2-сеансные бины без состояния на EJB3-сеансные бины.
Этот вопрос вообще не касается JPA (это отдельная часть работы, которую предстоит выполнить в будущем)

Я работаю на Websphere 6.1 с установленным и исправленным пакетом компонентов EJB3 и расширением профиля (пример приложения ejb3 подтверждает, что он работает)

Какие изменения нужно внести в мой код, web.xml, application.xml, ejb-jar.xml и другие привязки, специфичные для веб-сферы, чтобы преобразовать SINGLE ejb из 2 в 3?

Ответы [ 2 ]

1 голос
/ 16 июня 2009

У меня не получится ответить на мой собственный вопрос, пока я иду вперед.
Вот как я прошел через это

Следующие xml-файлы раньше имели типы документов, но теперь должны иметь пространства имен:

myApp.ear / META-INF / application.xml

<application version="5" xmlns="http://java.sun.com/xml/ns/javaee"
                         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/application_5.xsd">

myApp.ear / web.war / WEB-INF / web.xml

 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

myApp.ear / ejb.jar / META-INF / EJB-jar.xml

<ejb-jar id="ejb-jar_ID" version="3.0" 
            xmlns="http://java.sun.com/xml/ns/javaee" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

В web.xml были внесены следующие изменения

  • элементы taglib теперь находятся в элементе jsp-config

  • элемент отображаемого имени был удален из элементов фильтра и элементы сервлета

Удалить myApp.ear / ejb.jar / META-INF / ibm-ejb-jar-bnd.xmi

JNDI-поиск измените все локальные поиски ejb jndi на использование ejblocal: [classname]

Я также удалил ссылку на ресурс jdbc из сопоставлений ejb-jar.xml и вместо этого использую глобальный поиск

У меня была проблема с безопасностью, потому что я удалил ibm-application-bnd.xmi, где он связывает пользователей и группы с ролями /

0 голосов
/ 15 июня 2009

Вам нужно поместить пространства имен Java EE xml в три xml-файла, с которыми вы упомянули для начала. Тогда я думаю, что вы удаляете свои файлы привязки WAS и используете другой поиск jndi

...