Я все еще новичок в Java EE 7/Spring и пытаюсь решить следующую проблему. Я использую Glassfish 4.1 и JDK 1.8.Развертывание Spring-проекта для Glassfish (NoClassDefFoundError)
Я создал тестовый проект в Eclipse (Новый проект -> Проект Spring -> Простая Java) с использованием грантов проекта «Динамический веб-модуль», «Java», «JavaScript», «JavaServer Faces» следующим образом:
index.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:form>
<h:commandButton value="Submit Query" action="#{bean.login()}"></h:commandButton>
</h:form>
</html>
Bean.java
package springWeb;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@RequestScoped
@Named
public class Bean {
//@Autowired
private UserService userService;
public String login(){
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(springConfiguration.class);
// userService = (UserService)context.getBean("UserService");
// userService.service();
return "go.jsf";
}
}
UserServiceImpl
package springWeb;
import org.springframework.stereotype.Component;
//@Component
public class UserServiceImpl implements UserService {
@Override
public void service() {
System.out.println ("Service running...");
}
}
При нажатии Command-Button, я получаю следующее сообщение об ошибке:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/springframework/context/annotation/AnnotationConfigApplicationContext
root cause javax.faces.el.EvaluationException: java.lang.NoClassDefFoundError: org/springframework/context/annotation/AnnotationConfigApplicationContext
root cause java.lang.NoClassDefFoundError: org/springframework/context/annotation/AnnotationConfigApplicationContext
root cause java.lang.ClassNotFoundException: org.springframework.context.annotation.AnnotationConfigApplicationContext
Что является причиной этого, и как ее решить? (Для ясности я прокомментировал инъекцию зависимостей.)
Большое спасибо за помощь!
Вы уверены, что вы устанавливаете файл .war, полученный в результате 'МВН package'? Не совсем ясно, какие шаги вы выполнили, некоторые утверждения предполагают общую путаницу (* «(...) сервер Glassfish не имеет доступа к библиотекам, находящимся в хранилище maven» *) – kryger
Для ясности я реструктурировали мой вопрос выше – mike128