Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Spring: Error instantiating servlet, Все по примерам, не работает 
V
    Опции темы
02077461
Дата 29.3.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Бьюсь второй день над проблемой: скачал и поставил себе все что нужно для разработки в рамках 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>


В общем-то все по примеру. Почему не работает (на обоих простейших примерах) -- понять не могу.
PM   Вверх
powerOn
Дата 29.3.2009, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(02077461 @  29.3.2009,  14:37 Найти цитируемый пост)
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory


говорит commons-logging библиотеки в класспаф нет.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
02077461
Дата 29.3.2009, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Прошу простить -- не знал куда смотреть даже.
Подскажите пожалуйста, как прописать это в класспаф?
Скопировал все папки из spring/lib в lib томката, перезапустил -- тот же результат.

В логах такое: 
Код

INFO: Marking servlet example as unavailable
29.03.2009 15:06:09 org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /web threw load() exception
java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at org.springframework.web.servlet.DispatcherServlet.<clinit>(DispatcherServlet.java:242)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
... 


Где найти и как приписать этот LogFactory?
PM   Вверх
powerOn
Дата 29.3.2009, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



commons-logging.jar среди библиотек у Вас имеется? Если нет, то скачайте его здесь и положите в папку WEB-INF/lib вашего приложения. Если сборка мавеном идет, то соответствующий артефакт в dependency подключить нужно.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
02077461
Дата 29.3.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 13.7.2005

Репутация: нет
Всего: 0



Большое спасибо! Все заработало.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0710 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.