Я использую аннотацию @WebServlet
в своем приложении, например:
@WebServlet("/tokenize")
public class TokenizerServlet extends HttpServlet {
...
}
Это не работает в «Предварительном просмотре J2EE на локальном хосте» в Eclipse. Любой запрос к http://localhost:8080/myApp/tokenizer
возвращает 404. При сопоставлении с web.xml
этот же URL работает нормально.
Однако когда приложение развернуто (в моем случае в Azure), оно работает. Так что проблема не в коде или конфигурации, а в сервере предварительного просмотра в Eclipse.
Как мне настроить сервер предварительного просмотра, чтобы он учитывал мою аннотацию? Я смотрел везде, и, похоже, не так много настроек, о которых можно было бы говорить. Корневой элемент моего web.xml
выглядит так:
<web-app
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_3_0.xsd"
version="3.0">
В узле "Предварительный просмотр J2EE" в проекте у меня есть это:
ОБНОВЛЕНИЕ --
У меня никогда не было решения для этого, но я обнаружил, что запустить Tomcat локально настолько просто, что вместо этого я начал делать это. Я оставляю этот вопрос здесь на случай, если у кого-то еще возникнет такая же проблема, просто чтобы вы знали, что вы не одиноки, и, возможно, кто-то когда-нибудь даст ответ.