Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Не удаётся запустить сервлет в Eclipse и Tomcat


Автор: kaktebe 8.9.2012, 03:07
Доброго времени суток.
Начал недавно учить JSP и создал проект в Eclipse. Запускаю полученный проект по http://localhost:8080/ServletProject и всё запускается работает нормально, в web.xml прописан index.html.
Но когда создаю сервлет и прописываю его в web.xml так:
Код

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>ServletProject</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <servlet>
    <display-name>Servlet1</display-name>
    <servlet-name>Servlet1</servlet-name>
    <servlet-class>servletproject.servlet1</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Servlet1</servlet-name>
    <url-pattern>/servlet1</url-pattern>
  </servlet-mapping>
</web-app>

То выдаётся ошибка 500: HTTP Status 500 - Error instantiating servlet class servletproject.servlet1
и описание:
java.lang.ClassNotFoundException: servletproject.servlet1
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)
Как я понял вся проблема с путями, то ли в к классу, то ли ещё к чему-то. Предлагается при создании сервлета ввести class name, но какой это класс должен быть и какой путь к нему я не совсем понял.
Всё кстати лежит как по умолчанию Eclipse создал в папке src. Я читал, что вроде всё должно быть в WebContent, но Eclipse туда кладёт. Я пробовал и в WebContent класть, но тогда перестаёт запускаться Tomcat.
Где может быть всё таки ошибка, может знает кто-то?

Автор: AntonSaburov 8.9.2012, 16:03
Цитата(kaktebe @  8.9.2012,  03:07 Найти цитируемый пост)
java.lang.ClassNotFoundException: duhast.rammstein

Как я догадываюсь этот класс используется в сервлете - ну так надо библиотеку с этим классом положить в WEB-INF/lib. В Eclipse надо иногда явно указывать, что в WAR надо определенные библиотеки паковать.

Автор: kaktebe 8.9.2012, 16:33
Цитата(AntonSaburov @ 8.9.2012,  16:03)
Цитата(kaktebe @  8.9.2012,  03:07 Найти цитируемый пост)
java.lang.ClassNotFoundException: duhast.rammstein

Как я догадываюсь этот класс используется в сервлете - ну так надо библиотеку с этим классом положить в WEB-INF/lib. В Eclipse надо иногда явно указывать, что в WAR надо определенные библиотеки паковать.

А где этот класс взять или надо создать его и написатьс нуля?

Автор: AntonSaburov 8.9.2012, 17:32
Цитата(kaktebe @  8.9.2012,  16:33 Найти цитируемый пост)
А где этот класс взять или надо создать его и написатьс нуля? 

Откуда я знаю ? smile Я вижу ТОЛЬКО логи, где написано, что такой класс не найден. Какие могут быть причины обращения к этому классу из твоего приложения ? Кто его знает. Может у тебя есть библиотека, которая требует еще одну библиотеку, в которой этот класс должен быть. А может библиотека не положена в WAR. Причин может быть вагон и маленькая тележка.
Ты вообще хоть какие-то библиотеки используешь в своем проекте ?

Автор: kaktebe 8.9.2012, 19:01
Цитата(AntonSaburov @ 8.9.2012,  17:32)
Цитата(kaktebe @  8.9.2012,  16:33 Найти цитируемый пост)
А где этот класс взять или надо создать его и написатьс нуля? 

Откуда я знаю ? smile Я вижу ТОЛЬКО логи, где написано, что такой класс не найден. Какие могут быть причины обращения к этому классу из твоего приложения ? Кто его знает. Может у тебя есть библиотека, которая требует еще одну библиотеку, в которой этот класс должен быть. А может библиотека не положена в WAR. Причин может быть вагон и маленькая тележка.
Ты вообще хоть какие-то библиотеки используешь в своем проекте ?

Та не, какие библиотеки? Это по сути Hello, world) Создал чистый проект, создал сервлет, он не работает, выдаёт 404 ошибку, попытался попрописывать его в web.xml, но тогда выдаётся ошибка 500. Ответа нигде нету и никто не знает почему... Уже недели 1,5 пытаюсь разобраться и ничего не выходит... С PHP работал много, там всё просто настраивается и создаётся, а с JSP и Eclipse какая-то жесть...

Автор: AntonSaburov 8.9.2012, 19:26
Надо смотреть исходники - так ничего никто не определит.

Добавлено через 3 минуты и 10 секунд
Ну или смотри тут - http://java-course.ru/students/students.php?name=part7 - я там простой сервлет написал рабочий. Повозись.

Автор: kaktebe 9.9.2012, 00:20
Цитата(AntonSaburov @ 8.9.2012,  19:26)
Надо смотреть исходники - так ничего никто не определит.

Добавлено @ 19:29
Ну или смотри тут - http://java-course.ru/students/students.php?name=part7 - я там простой сервлет написал рабочий. Повозись.

Попробовал на основе того web.xml создать проект и сервлет, но ошибка та же самая, правда я ничего не перекладывал в папку Tomcat и WEB-INF.
Вот весь проект http://depositfiles.com/files/psefhnr5r если посмотришь, буду очень благодарен.

Автор: AntonSaburov 9.9.2012, 00:42
Выслал почту в PM - присылай туда

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)