EJB версию зависимости конфликта на сервере приложений SUN

StackOverflow https://stackoverflow.com/questions/3097162

  •  29-09-2019
  •  | 
  •  

Вопрос

Чтобы обобщить проблему, с которой я сталкиваюсь, у меня есть EJB, который использует версию в библиотеке (давайте назовем ее dep-va.jar). DEP-VA.JAR упакован в корню файла JAR EJB. Папка Domain Lib на сервере приложений содержит версию B той же библиотеки (давайте назовем это DEP-VB.jar). При вызове EJB я получаю ошибку из-за загруженного файла DEP-VB.JAR, а не DEP-VA.jar.

Я предполагаю, что первая часть этого вопроса в том, что Sun One Application Server V9.1 изолярует EJBS друг от друга? Я был под впечатлением, что это делает. Но похоже, что еще одно приложение загружено DEP-VB.jar, и этот EJB напрямую использует его без нагрузки собственного.

Второй вопрос, если сервер приложений делает выделение EJBS, это загружает зависимости от JAR файла EJB перед выбором в папках сервера приложений? Я был под впечатлением, что это также правда, но, возможно, нет ...

Кто-нибудь достаточно знакомы с серверами приложений SUN, чтобы объяснить, почему DEP-VB.JAR загружается, а не DEP-VA.JAR? Есть ли способ получить его для загрузки DEP-VA.jar, не меняя, что в папках сервера приложений? (Я бы не стеснялся сделать все, что может повлиять на другие приложения на сервере)

Спасибо.

Это было полезно?

Решение

Я предполагаю, что первая часть этого вопроса в том, что Sun One Application Server V9.1 изолярует EJBS друг от друга? Я был под впечатлением, что это делает. Но похоже, что еще одно приложение загружено DEP-VB.jar, и этот EJB напрямую использует его без нагрузки собственного.

В соответствии с Сахо (который является разработчиком Glassfish), Спецификация Java EE делает нет Выделение нагрузки класса мандата среди модулей одного уха, поэтому поведение может отличаться от одного сервера приложений к другому. Отказ С солнцем, мое понимание документация это то, что EJB-банки изолированы.

Второй вопрос, если сервер приложений делает выделение EJBS, это загружает зависимости от JAR файла EJB перед выбором в папках сервера приложений? Я был под впечатлением, что это также правда, но, возможно, нет ...

Это родительская стратегия (и для моих знаний, солнца позволяет изменить режим делегирования только для WebApps только).

Которые говорится, что происходит, если вы перечислите dep-vA.jar в Class-Path вход MANIFEST.MF эйб-банки?

Смотрите также

Другие советы

Я не использовал этот конкретный сервер, но я знаю, что в WebSphere есть возможность использовать Carent_First или Parent_Last Classloading. Вы бы искали эквивалент Parent_Last, где классы загружаются из уха, прежде чем идти до сервера.

Я бы предположил, что такая конфигурация возможна в любом сервере приложений, так как вы всегда должны быть в состоянии обеспечить наличие банок для вашего приложения, которые будут загружены на любой другой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top