У меня есть простой WAR-проект, управляемый Maven. У меня есть код сервлета под src/main/java/*
и весь статический контент (HTML, изображения и т. Д.) Под src/main/webapp
. Я могу развернуть получившуюся WAR-файл на нашем промежуточном сервере JBoss, и он работает, но обходной путь к повторному развертыванию мучительно медленный. Я хотел бы иметь возможность локально тестировать изменения на встроенном Tomcat, но у меня проблемы.
Отображение сервлета настроено в src/main/resources/web.xml
- я думаю, что это правильно; соответствующая часть выглядит как
<servlet>
<servlet-name>myServ</servlet-name>
<servlet-class>my.pkg.MyServ</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myServ</servlet-name>
<url-pattern>/ms</url-pattern>
</servlet-mapping>
Maven говорит мне, что он работает на localhost:8080/myprojectname
, и действительно, когда я туда иду, я вижу статический контент. Тем не менее, я попробовал localhost:8080/myprojectname/ms
так же, как и `` localhost: 8080 / ms` '- первый дает мне 404, а второй - 0-байтовый ответ.
Вкратце: где мой активный контент? Я ничего не вижу на консоли. Похоже, что Maven сделал target/tomcat/logs
, но это пусто. target/tomcat/webapps
тоже пусто, и когда я запускаю mvn tomcat:run -X
, я получаю много отладочной информации, включая ссылки на все мои JAR-зависимости, свойство classesDir
, которое указывает на target/classes
(что правильно), но нет упоминать где-либо об указанном мной шаблоне URL-адреса, а также имя класса Servlet, который будет вызываться в качестве обработчика. Я чувствую, что должен сказать Maven или Tomcat, как найти web.xml, или, может быть, указать сопоставление URL-адреса другим способом ... если вы не можете сказать, я новичок в этом: D
ETA: Моя установка выглядит очень похоже на этого парня , хотя наши проблемы кажутся другими.