Не удалось запустить сервер Tomcat 7 после создания сервлета с использованием eclipse

1

Я получаю ошибку, когда пытаюсь запустить локальный сервер Tomcat 7 в Eclipse:

"Запуск Tomcat v7.0 Server на localhost" возникла проблема. Сервер Tomcat v7.0 Сервер на локальном хосте не запускался.

Это шаги, которые я сделал:

  1. Создайте новый проект под названием "тест".
  2. Создайте новый файл index.jsp.
  3. Создайте новый servlet под названием "Testservlet".

    Имя пакета: testpackage

  4. Настройте новый путь сборки для веб-приложений. Добавьте внешний JAR из каталога Tomcat 7. Я добавляю servlet-api.jar.

Это структура пути в Eclipse:

Изображение 174551

Содержимое файла 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" 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>test</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>Testservlet</servlet-name>
    <servlet-class>testpackage.Testservlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Testservlet</servlet-name>
    <url-pattern>/Testservlet</url-pattern>
  </servlet-mapping>
</web-app>

Содержимое файла Testservlet.java:

package testpackage;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(description = "a test servlet", urlPatterns = { "/Testservlet" })
public class Testservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        out.println("This is a test servlet");
    }
}

Затем я добавляю проект на сервер Tomcat и пытаюсь запустить сервер. Это когда я получаю сообщение об ошибке, из-за которой сервер не запускается.

Если я удалю связанную с сервлетом разметку из файла web.xml, сервер начнет отлично. Это разметка, которую я удаляю:

 <servlet>
    <servlet-name>Testservlet</servlet-name>
    <servlet-class>testpackage.Testservlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>Testservlet</servlet-name>
    <url-pattern>/Testservlet</url-pattern>
  </servlet-mapping>

Я предполагаю, что мне нужна вышеуказанная разметка в файле web.xml, чтобы сервлет отображался, когда я переходил на test/Testservlet? Особенно, когда я развертываю проект на удаленном сервере.

Что я здесь делаю неправильно?

  • 0
    Какую ошибку вы получаете?
  • 0
    При запуске Tomcat v7.0 Server на локальном хосте возникла проблема. Сервер Tomcat v7.0 Сервер на локальном хосте не удалось запустить.
Показать ещё 2 комментария
Теги:
jsp
servlets
tomcat

2 ответа

3
Лучший ответ

Servlet API 3.0 включил новый пакет javax.servlet.annotation который предоставляет аннотации, такие как @WebServlet, для аннотирования класса сервлета, и это может исключить использование конфигурации сервлета в web.xml. Таким образом, servlet и servlet-mapping устарели.

Также не следует развертывать servlet-api.jar с вашим приложением. Tomcat 7 уже имеет эти классы и поддерживает множество API-интерфейсов Servlet. Он автоматически выберет, какой API сервлета загрузить, используя дескриптор развертывания веб-приложения.

  • 0
    Я не думаю, что вы, возможно, знаете, почему я получаю ошибку 404 при переходе к test / Testservlet после развертывания этого проекта на моем удаленном сервере Tomcat7?
  • 0
    Вы создали test.war или каков контекст вашего приложения? Имя проекта не совпадает с контекстом, используемым для развертывания приложения. Вы должны указать контекст, в котором должно быть развернуто приложение.
Показать ещё 7 комментариев
0

Лучшими решениями являются добавление времени выполнения Runtime во время создания сервлета 1.Add runtime сервера при создании имени sevelet 2.Add указано, что установленные tomcat местоположения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню