Создание URL сервлета
Пытаюсь создать сервлет в Eclipse, через проект Dynamic Web Project
//@WebServlet("/hello_world")
public class FirstServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw=response.getWriter();
pw.println("<html>");
pw.println("<h1> Hello World </h1>");
pw.println("</html>");
}
}
В папке WEB-INF создал следующий файл web.xlm:
<?xml version="1.0" ecoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/hello_world</url-pattern>
</servlet-mapping>
</web-app>
Tomcat подключен на порт 8081. Пытаюсь сделать чтобы вызов сервлета был по URL http://localhost:8081/hello_world, однако получается что необходимо вызывать через название проекта, а web.xml вообще не работает. Подскажите в чем ошибка.
Ответы (1 шт):
Причина проблемы:
Это поведение по умолчанию, сервер подымается с context path, одноименным собираемому war'нику.
Настройка Tomcat:
Для переопределения context path, используемого по умолчанию, существует несколько вариантов, а зависимости от того, как вы выполняется deploy своего war'ника в Tomcat:
- в
$CATALINA_HOME/conf/server.xmlзатереть path:<Context path="" docBase="MyApp"></Context>; $CATALINA_HOME/conf/Catalina/localhost/<context>.xmlсо следующим содержимым:<Context docBase="../deploy/MyApp.war"/>(путь до вашего приложения).- создать файл
$CATALINA_HOME/conf/Catalina/localhost/ROOT.xmlсо следующим содержимым:<Context docBase="../deploy/MyApp.war"/>(путь до вашего приложения).
Настройка в Eclipe:
Если требуется узконаправленная настройка в рамках Eclipse IDE, то можно сделать так:
- открыть вкладку с модулями (нажмите
F3если у вас выбранTomcatво окнкеServers); - выберите из списка нужный модуль, перейдите в режим редактирования (нажмите "edit");
- измените
Path.
