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


Автор: alafin 11.2.2007, 13:52
Подскажите как, при конфигурации Tomcat по умолчанию, выполнить сервлет.
Делаю так(без применения IDE, т.е. руками):
1) Создаю папку в D:\Tomcat\webapps к примеру domain
2) Создаю папку в D:\Tomcat\webapps\domain  META-INF, в которой создаю папку classes, куда помещаю откомпиленый сервлет
3) Создаю файл web.xml в каталоге D:\Tomcat\webapps\domain\META-INF
4) Запускаю сервлет в браузере http://localhost:8080/domain/VerySimpleServlet , в ответ на который получаю ошибку 404
type Status report

message /domain/VerySimpleServlet

description The requested resource (/domain/VerySimpleServlet) is not available.

Теперь о содержимом файлов:
VerySimpleServlet
Код

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;

public class VerySimpleServlet extends HttpServlet {
    public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = new PrintWriter(response.getOutputStream());
        out.println("<html>");
        out.println("<head><title>VerySimpleServlet</title></head>");
        out.println("<body>");
        out.println("Hello World");
        out.println("</body>");
        out.println("</html>");
        out.flush();
    }
}


файл web.xml
Код

<!DOCTYPE web-app PUBLIC "-//Sun Microsystem, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
    <display-name>WebApplication</display-name>
    <servlet>
        <description>This servlet just prints "Hello World" message.</description>
        <servlet-name>VerySimpleServlet</servlet-name>
        <servlet-class>VerySimpleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>VerySimpleServlet</servlet-name>
        <url-pattern>/VerySimpleServlet</url-pattern>
    </servlet-mapping>
</web-app>

Подскажите что я делаю не правильно.

Автор: tux 11.2.2007, 13:54
Цитата(alafin @  11.2.2007,  13:52 Найти цитируемый пост)
2) Создаю папку в D:\Tomcat\webapps\domain  META-INF, в которой создаю папку classes, куда помещаю откомпиленый сервлет
3) Создаю файл web.xml в каталоге D:\Tomcat\webapps\domain\META-INF

Нужный каталог называется WEB-INF.

Автор: alafin 11.2.2007, 14:03
Пардон, опечатался, на самом деле у меня каталог называется WEB-INF.

Автор: tux 11.2.2007, 14:16
Что говорит Tomcat при развертывании приложения?

Автор: Maksym 11.2.2007, 14:19
alafin
Что в консоль Tomcat пишет при запуске? приложение подхватывается нормально?
Попробовал запустить твой пример, вот с таким web.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
    <display-name>WebApplication</display-name>
    <servlet>
        <servlet-name>VerySimpleServlet</servlet-name>
        <servlet-class>test.VerySimpleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>VerySimpleServlet</servlet-name>
        <url-pattern>/VerySimpleServlet</url-pattern>
    </servlet-mapping>
</web-app>

(у меня класс в пакете)
Запустилось и поднялось. Правда, при обращении из браузера уже сам сервлет свалился..


Автор: alafin 11.2.2007, 14:46
Вот что у меня при запуске Tomcat-а
user posted image

Цитата(Maksym @  11.2.2007,  14:19 Найти цитируемый пост)
Запустилось и поднялось. Правда, при обращении из браузера уже сам сервлет свалился..

Как понимать запустилось и поднялось? Его как-то можно по другому запустить, кроме как браузера?

Автор: alafin 11.2.2007, 15:59
Спасибо, заработало, все дело было из-за xml файла(взял за основу ту который был предложен здесь), но вопрос про развертывание еще остается открытым:
Как понимать запустилось и поднялось? Его как-то можно по другому запустить, кроме как браузера? 

Автор: Maksym 12.2.2007, 13:58
alafin
При запуске Tomcat, в котором я разворачивал твой проект, в лог среди прочего он написал:
Код

INFO: Installing web application at context path /domain from URL file:C:\documents\WORK\3-20070209\Tomcat 5.0\webapps\domain
Feb 12, 2007 12:59:22 PM org.apache.catalina.core.StandardHostDeployer install

Вот это я и имел в виду под словами "запустилось и поднялось" - Tomcat запустился без ошибок и проинсталлировал приложение в соответствующий конекст, теперь можно обращаться браузером и сервлет как-то откликнется.

Автор: y3u 12.2.2007, 17:38
можнор повесить лисенер ServletContextListener, обычно контексты создаются в самом конце деплоинга после разбора всех конфигов...

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