无法在上下文路径上将Web App部署到服务器?

时间:2010-11-22 20:54:43

标签: java tomcat jersey deployment

我有一个简单的Jersey jax rs hello world应用程序,我正在尝试部署到我的tomcat服务器,所以我可以调用资源url并检查它是否给了我所需的输出,但是当我设置上下文路径时web.xml它没有部署到它所做的服务器,但是当我把servlet信息拿出来时,只留下一个空白的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

如果有人有任何想法或解决方法,我们将不胜感激 谢谢 克里斯

5 个答案:

答案 0 :(得分:1)

这里有一种偷渡式回答,但我注意到你的web.xml中间有一个悬挂的结束标记:

</servlet>

这会阻止它解析....

答案 1 :(得分:1)

首先,如果某些内容部署失败,解决方案的第一个提示是查看应用程序服务器的日志以回答“为什么会失败?”这个问题。

事情不只是“失败”,它们会提供错误消息和异常以及有关实际发生的事件的堆栈跟踪和信息。试图猜测为什么某些事情失败而没有这些知识就等于猜测。

作为猜测,请确保类com.sun.jersey.spi.container.servlet.ServletContainer位于Web应用程序的类路径中(即在WEB-INF/lib目录中)。

答案 2 :(得分:1)

其中一个可能的原因就是这种蚂蚁入门

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

删除前缀=“/”,它会破坏您的存档

答案 3 :(得分:0)

事实证明,我正在编辑的web.xml文件存在一些混淆,当找到正确的web.xml并对挂起的servlet标签进行排序时,这会对问题进行排序。感谢大家的帮助和耐心,因为我对maven完全陌生。

答案 4 :(得分:0)

就我而言,这是因为在编写https://netbeans.org/kb/docs/web/ajax-quickstart.html教程时,我没有在创建新的servlet向导期间勾选“向部署描述符(web.xml)添加信息”。
虽然我删除了那个servlet并再次创建了servlet,但这次勾选了复选框,我认为这是导致我的'context.xml'包含导致错误的<Context antiJARLocking="true" path="/MyAjaxApp"/>的原因。

因此,当我将行更改为<Context antiJARLocking="true" path="/AutoCompleteServlet"/>时,一切正常。