OC4J 10.1.3.4 проблема с развертыванием нескольких 2.1 EJB - PullRequest
0 голосов
/ 27 сентября 2008

У меня проблемы с миграцией с OC4J 10.1.2.3 на 10.1.3.1.4. Проблема в приложениях, которые имеют несколько EJB (все 2.1, EJB 3.0 нет). Jdeveloper возьмет файл ejb-jar.xml по умолчанию (тот, который необходим Jdeveloper для запуска его на автономном экземпляре OC4J) и упакует его в каждый JAR-модуль EJB. Это приводит к тому, что сервер приложений просматривает каждый модуль JJ EJB при развертывании и находит один и тот же файл ejb-jar.xml N раз (где N = количество модулей EJB). Это приводит к дублированию ссылок на EJB и нарушит любой поиск JNDI, такой как: "java: comp / env / ejb / EJBName". Таким образом, развертывание приложения с 3 EJB, EJB1, EJB2 и EJB3 приводит к тому, что сервер приложений регистрирует 9 EJB вместо 3. Мне нужен способ наилучшей практики, но между 10.1.3.4 и JDeveloper действуют ситуации довольно страшно ...

Примечание: они будут работать, если для кода поиска JNDI веб-приложения будет просто "ejb / EJBName". Это не желательно, хотя.

Ответы [ 2 ]

1 голос
/ 06 октября 2008

Вам следует проверить документацию Oracle, чтобы узнать, в каком случае вы. Oracle® Containers для J2EE Enterprise JavaBeans Руководство разработчика - хорошее начало В соответствии с Руководством по сервисам Oracle® Containers for J2EE, глава 2: Использование JNDI когда вы используете форму "ejb / EJBName", вы выполняете "локальный" поиск. Если вы хотите использовать полную форму, вы должны проверить раздел «Включение глобального поиска JNDI» в главе «Использование JNDI».

0 голосов
/ 08 декабря 2008

Проблема была в нескольких ссылках в наших профилях развертывания. Мы создали профиль развертывания для КАЖДОГО EJB. Это означало, что у каждого EJB был свой собственный ejb-jar.xml (этот файл содержал описание всех EJBS в проекте). Поэтому каждый раз, когда JDeveloper создает EJB, он помещает дескриптор всех EJBS в каждый сгенерированный EJB, вызывая NxN количество ссылок. Поэтому Nx (N-1) дополнительных ссылок.

Теперь ключевым моментом является то, что Oracle Application Server 10.1.2.3.0 и ниже не заботился об этих повторных ссылках. Однако, как мы видим, версия 10.1.3.1.4 - это совсем другая версия, и она сломалась.

Наше исправление: иметь только 1 профиль развертывания EJB, который содержит все классы EJB и POJO, которые они используют. Помните, до того, как был 1 профиль EJB для каждого EJB ... Все это позволяло Jdeveloper (что является дерьмом IMHO) правильно создать действительный EAR. Именно это и вызвало сочетание дерьма Jdeveloper и Oracle Application Server.

...