У меня есть webapp с Maven, который использует плагин Tomcat для сервера. Приложение скомпилируется в .war, который при извлечении, кажется, содержит все классы (включая сервлеты) в папке WEB-INF/classes.Maven Tomcat plugin - 404 WebServlet не найден
Когда URL http://localhost:8080/com.galya.crm получает удар, index.html (который является SPA приложения) загружается нормально перенаправление http://localhost:8080/com.galya.crm/#!/login/msg/notlogged
У меня есть 4 сервлетов аннотированных аналогичным образом:
@WebServlet("/restapi/login")
public class LoginController extends HttpServlet {
Проблема приходит, когда приложение SPA пытается аутентифицироваться с помощью сервлета входа (показано выше). Я ожидаю, что он будет здесь: http://localhost:8080/com.galya.crm/restapi/login, но я получаю ошибку 404.
Ниже я приложил папку плагина Tomcat, которая автоматически создается. Рабочий каталог пуст, и я не уверен, что все в порядке.
Первоначально WebApp/WEB-INF/web.xml был автоматически сгенерирован и содержала следующее:
<!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>Archetype Created Web Application</display-name>
</web-app>
Я также попытался изменить его принять WebServlet аннотаций, но не сделал работа также:
<!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 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">
</web-app>
PS Приложение некоторое время назад работало на другом сервере, поэтому проблема должна быть в конфигурациях сервера, а не в самом коде.
Я только что увидел, что сервер Tomcat использует свою конфигурацию из \ target \ tomcat \ conf \ web.xml, где версия "2.5". Кажется, что это должно быть проблемой, но вставка фрагмента для 3.0 сверху не работает ... – Galya
ОК, похоже, я сделал ужасно глупую ошибку. Я запустил команду tomcat: run, которая запустила еще один сервер, сконфигурированный с помощью Idea, а не с плагином. Теперь, когда я использую команду tomcat7: запустите и с помощью конфигураций версии 3, сервлеты работают. Но index.html теперь дает ошибку 404, даже если указан в списке приветственных файлов – Galya