Проект Eclipse Java EE и Spring: classnotfoundexception - PullRequest
1 голос
/ 03 мая 2011

Я пытаюсь построить проект в Eclipse (на самом деле я использую RAD, поэтому в основном затмение, и когда я говорю «Java EE Project», я имею в виду «Enterprise Application Project»).

MyEnterprise Application Project (проект EAR) состоит из двух модульных проектов: - service - web

В сервисном проекте есть что-то, все связано с использованием Spring.

Веб-проект имеетв нем есть все, что связано, с использованием Spring.Материал пользовательского интерфейса в веб-проекте должен использовать этот материал в сервисном проекте.

Оба проекта включены в проект EAR в виде модулей.

В веб-проекте проект «сервиса» отображается какзависимый проект в пути сборки, он помечен для экспорта, а также указан в списке как Зависимость модуля EE.

Хотя мне очень трудно заставить это работать:

Весенний контекст в веб-проекте, разумеется, загружается при развертывании приложения и импортирует нужный мне весенний конфигурационный файл из сервисного проекта.Кажется, это работает нормально.

Когда Spring пытается создать экземпляр компонента, он генерирует исключение ClassNotFoundException.На самом первом бобе.

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

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

Так что классы из моегосервисный проект недоступен в classpath, когда Spring пытается их использовать.

Есть идеи, что здесь происходит и / или что я могу с этим поделать?

Ответы [ 3 ]

0 голосов
/ 04 мая 2011

Существует политика загрузчика классов, которую вы должны использовать ParentClass First. Это будет осуществляться либо через Application.xml, либо через web.xml. Вам нужно проверить свои xml и попробовать.

0 голосов
/ 04 мая 2011

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

Спасибо за предложения, хотя.

К сожалению, мы не всегда можем изменить структуру проекта. Мы работаем над структурами, которые установили другие люди.

Я посмотрел на параметр ParentClassFirst против ParentClassLast - кажется, что в веб-сфере параметр ParentClassFirst является значением по умолчанию, если вы ничего не указали, поэтому я оставляю его без спецификации, чтобы получить эту функциональность. http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/crun_classload.html

0 голосов
/ 03 мая 2011

Это проблема загрузчика классов.

Поскольку вы используете Spring, я предполагаю, что у вас нет EJB.Если это так, зачем вам EAR?Разверните все это как веб-проект в одной WAR.

Поместите все ваши XML-файлы конфигурации .class и Spring в WEB-INF / classes.Загрузите конфигурацию, используя org.springframework.web.context.ContextLoaderListener.

...