У меня есть приложение («CC»), содержащее два модуля: CC-ejb и CC-war. CC-ejb содержит объекты JPA и фасады, которые использует CC-war. Это приложение работает правильно. Теперь я создаю еще один ("CINT") с двумя модулями: CINT-ejb и CINT-war. В веб-модуле мне нужно получить доступ к объектам, предоставленным CC-ejb. Я использую NetBeans 7.1 для разработки и Glassfish 3.1.1 для развертывания.
В CC-ejb у меня есть интерфейс:
/* ... */
import javax.ejb.Local;
@Local
public interface CallDetailsFacadeLocal {
/* ... */
и реализующий класс:
/* ... */
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
/* ... */
import tp.coma.data.entities.CallDetails;
@Stateless
public class CallDetailsFacade
extends AbstractFacade<CallDetails>
implements CallDetailsFacadeLocal {
@PersistenceContext(unitName = "CC-ejbPU")
private EntityManager em;
/* ... */
В CINT-war я упоминаю об этом в одном из моих бобов:
/* ... */
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import tp.coma.data.beans.CallDetailsFacadeLocal;
/* ... */
@ManagedBean(name = "bookingController")
@SessionScoped
public class BookingController implements Serializable {
/* ... */
@EJB
private CallDetailsFacadeLocal cdrFacade;
/* ... */
При развертывании CINT (CC уже запущен и работает), я получаю следующее сообщение:
Произошла ошибка при развертывании: исключение при загрузке приложения: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Ltp / coma data / beans / CallDetailsFacadeLocal; java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Ltp / beans / coma Пожалуйста, смотрите server.log для более подробной информации.
В журнале сервера я вижу:
[# | 2012-03-28T12: 42: 42.236 + 0200 | SEVERE | glassfish3.1.1 | global | _ThreadID = 22; _ThreadName = Thread-2; | Класс [Ltp / coma / data / beans / CallDetailsFacadeLocal; ] не найдено. Ошибка при загрузке [class tp.coma.cint.jsf.BookingController] | #]
[# | 2012-03-28T12: 42: 42.252 + 0200 | SEVERE | glassfish3.1.1 | global | _ThreadID = 22; _ThreadName = Thread-2; | Класс [Ltp / coma / data / beans / CallDetailsFacadeLocal; ] не найдено. Ошибка при загрузке [class tp.coma.cint.jsf.BookingController] | #]
И несколько (восемь) следов стека исключений.
Что я делаю не так ??