Зависимость сервлета Glassfish и EJB-бобов
Я использую 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 содержит код для поиска локального интерфейса и его сужения с использованием вспомогательного класса компонента.
- a.jar
Это все разворачивается и работает нормально. Но когда я хочу вывести поисковый код из войны и переместить его в банку, которая доступна под 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.