Запуск сервлета на TomCat - PullRequest
       3

Запуск сервлета на TomCat

0 голосов
/ 04 декабря 2011

Мне нужно запустить мой сервлет на сервере с работающим tomcat.

Я создаю свой HelloWorld сервлет из файла Java (HelloWorld.java).

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException
{
    response.setContentType( "text/html" );
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Hello World</title></head>");
    out.println("<body><h1>HELLO WORLD</h1></body>");
    out.println("</html>");
    out.close();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
{
doGet( request, response );
}

}

Чем я загружаю его на сервер и запускаю

javac HelloWorld.java

Эта команда создает файл HelloWorld.class, который я помещаю в WEB-INF/classes папка

Чем я добавляю некоторый код в файл web.xml в каталоге WEB-INF, так это выглядит так

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <display-name>My first Servlet</display-name> 
    <servlet> 
        <servlet-name>HelloWorldServlet</servlet-name> 
        <servlet-class>HelloWorld</servlet-class> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>HelloWorldServlet</servlet-name> 
            <url-pattern>/HW</url-pattern> 
    </servlet-mapping> 
</web-app>

Чем я запускаю команду

touch ~WEB-INF/web.xml

Теперь я пытаюсь получить доступ к своему сервлету HelloWorld, введя URL-адрес, например ~ \ HW.

Но я получаю ошибку:

type Status report

message /group05/HW

description The requested resource (/group05/HW) is not available.

Что бы вы порекомендовали сделать, чтобы исправить это?

Спасибо за рассмотрение моего вопроса.

1 Ответ

1 голос
/ 04 декабря 2011

В данном конкретном случае возможны 2 причины:

  1. Tomcat не настроен на горячее развертывание после редактирования web.xml.Вам необходимо перезапустить Tomcat вручную.

  2. Конкретная установка Tomcat не поддерживает классы сервлетов в пакете по умолчанию.Вы должны всегда помещать класс в пакет, если он предназначен для использования другими классами, которые сами по себе находятся внутри пакета (например, внутренние классы Tomcat).

См. Также:


Не связано к конкретной проблеме, я понимаю, что вы только начинаете работать с сервлетами, однако я укажу, что это не "лучшая практика" для использования сервлетов.Предлагаю заглянуть на нашу вики-страницу сервлетов , чтобы получить конкретные примеры, узнать о канонических подходах и найти ссылки на соответствующие учебные пособия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...