У меня есть сервлет
@WebServlet(name = "ToDoServlet", urlPatterns = "/*")
public class ToDoServlet extends HttpServlet {
private static final Logger logger = LoggerFactory.getLogger(ToDoServlet.class);
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
logger.info("PathInfo: {}", req.getPathInfo());
getServletContext().getRequestDispatcher("/WEB-INF/templates/index.jsp")
.forward(req, resp);
}
}
В web.xml
У меня есть только определение страницы ошибки.
Если я перехожу по URL-адресу http://localhost:8080/webappname/
В браузере появляется ошибка 404, и этов журнале сервера:
17:05:58,540 INFO [ru.geekbrains.controller.ToDoServlet] (default task-1) PathInfo: /
17:05:58,543 INFO [ru.geekbrains.controller.ToDoServlet] (default task-1) PathInfo: /WEB-INF/templates/index.jsp
17:05:58,545 INFO [ru.geekbrains.controller.ToDoServlet] (default task-1) PathInfo: /WEB-INF/error.jsp
Но если я изменю отображение сервлета на \something\*
, это будет работать.
Это похоже на конфликт путей между файлами в файле war и зарегистрированными сервлетами.
Это правда? Как это решить?
PS Я развертываю приложение на Wildfly 17.0.1.Final