Зависимость сервлета Glassfish и бобов EJB - PullRequest
0 голосов
/ 01 августа 2011

Я использую Glassfish 3.1.1 и пытаюсь заставить развертывание EJB2.x работать до перехода на EJB3. Я сделал небольшой пример, который структурирован так:

  • EAR
    • a.jar
      • ejb-jar.xml для описания компонента A, содержащего удаленный и локальный интерфейсы.
      • Бин также содержит вспомогательный класс для узкого () объекта домашнего интерфейса.
    • b.jar
      • ejb-jar.xml для описания bean-компонента B, содержащего удаленный и локальный интерфейсы.
      • Бин также содержит вспомогательный класс для узкого () объекта домашнего интерфейса.
    • C.war
      • web.xml содержит сервлет и теги <ejb-local-ref> для указания на локальный интерфейс компонентов A и B
      • war содержит код для поиска локального интерфейса и его сужения с использованием вспомогательного класса компонента.

Это все развертывается и работает нормально. Но когда я хочу вывести поисковый код из войны и переместить его в банку, которая доступна под lib/helper.jar, я получаю ClassNotFoundException на узком помощнике.

Caused by: java.lang.ClassNotFoundException: com.abeloos.glassfish.helper.narrow.calculator.EJBNarrow at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:808) at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:696) at java.lang.ClassLoader.loadClass(ClassLoader.java:303) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)

Это почти как если бы вы не могли получить доступ к коду бина, если пришли из lib-path.

...