Не удается развернуть веб-приложение на сервере по контекстному пути? - PullRequest
5 голосов
/ 22 ноября 2010

У меня есть простое приложение Jersey jax rs hello world, которое я пытаюсь развернуть на своем сервере tomcat, чтобы я мог вызвать URL ресурса и проверить и посмотреть, выдает ли он требуемый вывод, но когда я задаю контекстный путь в web.xml он не развертывается на сервере, однако когда я вынимаю информацию о сервлете и оставляю пустой файл web.xml, это означает, что это моя проблема. Вот содержимое моего 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>Web App</display-name>  
  <servlet-name>ServletContainer</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletContainer</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
</web-app>

Как и было запрошено, здесь находится трассировка стека ошибки

[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] Assembling webapp[app1] in [C:\Users\leo\4thYearUni\Project\app1\target\app1]
[INFO] Processing war project
[INFO] Copying webapp resources[C:\Users\leo\4thYearUni\Project\app1\src\main\webapp]
[INFO] Webapp assembled in[170 msecs]
[INFO] Building war: C:\Users\leo\4thYearUni\Project\app1\target\app1.war
[INFO] [tomcat:redeploy {execution: default-cli}]
[INFO] Deploying war to http://localhost:8080/app1
[INFO] OK - Undeployed application at context path /app1
[INFO] FAIL - Failed to deploy application at context path /app1

Если у кого-то есть идеи или обходные пути, это будет высоко цениться. Спасибо Chris

Ответы [ 5 ]

1 голос
/ 07 августа 2012

Одной из возможных причин этого является такая запись в ant

<zipfileset dir="./mywebcontent/" prefix="/" />

remove prefix = "/", это портит ваш архив

1 голос
/ 23 ноября 2010

Прежде всего, если что-то не удается развернуть, первым советом для решения является просмотр журналов сервера приложений, чтобы ответить на вопрос «Почему это не удается?»

Вещи не просто "терпят неудачу", они дают сообщения об ошибках и исключения, а также следы стека и информацию о том, что происходит на самом деле. Попытка угадать, почему что-то терпит неудачу без этих знаний, равносильна догадке.

В качестве предположения убедитесь, что класс com.sun.jersey.spi.container.servlet.ServletContainer находится в пути к классу веб-приложения (т. Е. В каталоге WEB-INF/lib).

1 голос
/ 23 ноября 2010

Вид диска, ответив здесь, но я отмечаю висячий конец тега в середине вашего web.xml:

</servlet>

это остановит разбор ....

0 голосов
/ 24 февраля 2014

В моем случае это было потому, что при работе с учебником https://netbeans.org/kb/docs/web/ajax-quickstart.html я не ставил галочку «добавить информацию в дескриптор развертывания (web.xml)» во время мастера создания нового сервлета.
ХотяЯ удалил этот сервлет и снова создал сервлет, на этот раз отметив флажок, и я думаю, что именно из-за этого в моем файле context.xml <Context antiJARLocking="true" path="/MyAjaxApp"/> произошла ошибка.

Поэтому, когда я изменил строку на <Context antiJARLocking="true" path="/AutoCompleteServlet"/>, все работало нормально.

0 голосов
/ 24 ноября 2010

Оказалось, что была некоторая путаница в файлах web.xml, которые я редактировал, и когда был найден правильный файл web.xml и отсортирован тег "зависший сервлет", это решило проблему.Спасибо всем за вашу помощь и терпение, так как я новичок в Maven.

...