Я работаю над проектом, который включает в себя библиотеку персистентности (JPA 1.2), EJB 3 и уровень веб-презентации (JSF). Я разрабатываю приложение с использованием Eclipse, и приложение публикуется на WebSphere Application Server Community Edition (Geronimo 2.1.4) через плагин eclipse (но то же самое происходит, если я публикую вручную). При публикации на сервер я получаю следующее сообщение об ошибке:Проблема с загрузчиком классов с EJB
java.lang.NoClassDefFoundError: Could not fully load class: manager.administration.vehicles.VehicleTypeAdminBean
due to:manager/vehicles/VehicleType
in classLoader:
[email protected]8c7
at org.apache.xbean.finder.ClassFinder.(ClassFinder.java:177)
at org.apache.xbean.finder.ClassFinder.(ClassFinder.java:146)...
В web.xml у меня есть ссылка на EJB:
<ejb-local-ref>
<ejb-ref-name>ejb/VehicleTypeAdmin</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>manager.administration.vehicles.VehicleTypeAdmin</local>
<ejb-link>VehicleTypeAdminBean</ejb-link>
</ejb-local-ref>
EJB проект имеет ссылку на персистенцию проекта, и веб-проект имеет ссылки на оба проекты. Я не получаю ошибок компиляции, поэтому я считаю, что классы и ссылки верны.
Я не знаю, является ли это проблемой сервера приложений, но я запускал ранее приложение на том же сервере, используя те же параметры конфигурации.
Кто-нибудь знает, что может быть проблемой?
Спасибо вы за свой ответ. Да, вы правы, мне не хватало банку с классом VehicleType в classpath. Я ссылался на него, но в развертывании он был опущен. Когда я добавил его для экспорта в eclipse, он был добавлен в classpath, и не возникла ошибка загрузки класса, поэтому проблема была решена. – Vladimir