2013-03-19 2 views
1

Я читаю онлайн-форму этой весны онлайн springsource.org.Spring Web Services Class Not Found Exception

http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html

В главе 2, в конце концов, это вы добавить фасоль префикс и суффикс /WEB-INF/jsp/ и .jsp для ответов.

Код до сих пор должен в основном загружать index.jsp, когда вы переходите на localhost: 8080/springapp /, который будет перенаправлять на localhost: 8080/springapp/hello.htm, который создает экземпляр HelloController, который должен теоретически отправить вам до /WEB-INF/jsp/hello.jsp. Когда я добавил префикс/суффикс боб и изменил все мои ссылки на просто «привет» вместо того, чтобы полностью pathed Jsp файл, я начал получать следующее сообщение об ошибке:

message Handler processing failed; nested exception is 
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/fmt/LocalizationContext 

Я попытался уходящим через образцы несколько раз и проверка на опечатку, и я до сих пор не могу найти проблему. Любые советы или указатели?

index.jsp (в корне веб-приложение:

<%@ include file="/WEB-INF/jsp/include.jsp" %> 

<%-- Redirected because we can't set the welcome page to a virtual URL. --%> 
<c:redirect url="/hello.htm" /> 

HelloController.java (минус импорт и упаковки:

public class HelloController implements Controller { 

protected final Log logger = LogFactory.getLog(getClass()); 

    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 

     String now = (new Date()).toString(); 
     logger.info("Returning hello view with " + now); 

     return new ModelAndView("hello", "now", now); 
    } 
} 

Мой hello.jsp файл:

<%@ include file="/WEB-INF/jsp/include.jsp" %> 

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Hello :: Spring Application</title> 
    </head> 
    <body> 
     <h1>Hello - Spring Application</h1> 
     <p>Greetings, it is now <c:out value="${now}" /></p> 
    </body> 
</html> 

ответ

2

Похоже, вам не хватает JSTL банку здесь. Попробуйте загрузить его и поместить в свой класс, чтобы узнать, работает ли он: Where can I download JSTL jar

+0

Спасибо, в учебнике говорится добавить jstl.jar и standard.jar. Я, должно быть, пропустил первую часть предложения, поскольку у меня только был стандарт. Яр ... Большое спасибо! – Kyle

+0

Нет проблем ... в будущем, если вы увидите исключение 'java.lang.NoClassDefFoundError', скорее всего, вам не хватает некоторых банок. Просто google для банок и добавьте их в путь к классам. – limc

1

Кажется, что в пути класса отсутствуют определенные баночки. Убедитесь, что у вас есть сервлет-апи-2.x.jar-апи JSP-2.x.jar и JSTL-1.x.jar на пути к классам

1

Убедитесь, что файл jstl.jar находится в папке WEB-INF/lib.

На самом деле, вот что указано в учебнике, которое вы связали. Я думаю, вы пропустили этот этап:

We will be using the JSP Standard Tag Library (JSTL), so let's start by copying the JSTL files we need to our 'WEB-INF/lib' directory. Copy jstl.jar from the 'spring-framework-2.5/lib/j2ee' directory and standard.jar from the 'spring-framework-2.5/lib/jakarta-taglibs' directory to the 'springapp/war/WEB-INF/lib' directory.