Бьюсь второй день над проблемой: скачал и поставил себе все что нужно для разработки в рамках Spring, но самые простые примеры не работают. Я уже понял теоретическую часть, но не могу понять, почему не запускаются примеры. Примеры брал отсюда и отсюда Выдает ошибку при первом заходе: Код | type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class org.springframework.web.servlet.DispatcherServlet org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) java.lang.Thread.run(Unknown Source)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory org.springframework.web.servlet.DispatcherServlet.<clinit>(DispatcherServlet.java:242) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) java.lang.reflect.Constructor.newInstance(Unknown Source) java.lang.Class.newInstance0(Unknown Source) java.lang.Class.newInstance(Unknown Source) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) java.lang.Thread.run(Unknown Source)
root cause
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) java.lang.ClassLoader.loadClassInternal(Unknown Source) org.springframework.web.servlet.DispatcherServlet.<clinit>(DispatcherServlet.java:242) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) java.lang.reflect.Constructor.newInstance(Unknown Source) java.lang.Class.newInstance0(Unknown Source) java.lang.Class.newInstance(Unknown Source) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:857) org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565) org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509) java.lang.Thread.run(Unknown Source)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
|
Потом пишет только что сервлет не найден. Файлы: web.xml Код | <?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>example</servlet-name> <display-name>example</display-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- servlet-class>my.Servlet</servlet-class --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>example</servlet-name> <url-pattern>*.form</url-pattern> </servlet-mapping>
<servlet> <description>My Servlet</description> <display-name>Servlet</display-name> <servlet-name>Servlet</servlet-name> <servlet-class>my.Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet</servlet-name> <url-pattern>/Servlet</url-pattern> </servlet-mapping>
</web-app>
|
example-servlet.xml Код | <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="Calc" class="SumController" > </bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/calc.html">Calc</prop> </props> </property> </bean>
</beans>
|
SumController Код | import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController;
public class SumController extends AbstractController {
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { ModelAndView mav = new ModelAndView("/calc.jsp"); try { int x = Integer.parseInt(request.getParameter("x")); int y = Integer.parseInt(request.getParameter("y")); int sum = x + y; mav.addObject("sum", sum); mav.addObject("x", x); mav.addObject("y", y); } catch (NumberFormatException e) { e.printStackTrace(); } return mav; } }
|
calc.jsp Код | <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Summer</title> </head> <body> <form> <input type="text" name="x" value="${x}"/> + <input type="text" name="y" value="${y}"/> = ${sum} <br/> <input type="submit" value="Calc"/> </form> </body> </html>
|
В общем-то все по примеру. Почему не работает (на обоих простейших примерах) -- понять не могу.
|