我正在编写Java Web应用程序,并且在让我的servlet正常工作时遇到问题。
这是来自我的web.xml文件:
<servlet>
<description>Called to process any forms on the website</description>
<display-name>Form Processing Servlet</display-name>
<servlet-name>FormAction</servlet-name>
<servlet-class>com.devwork.servlets.FormAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FormAction</servlet-name>
<url-pattern>/servlet/FormAction</url-pattern>
</servlet-mapping>
</web-app>
然而,当我将应用程序部署到Glassfish 3时,它会在通过HTTP POST将表单中的数据发送到正确的servlet URL时返回404。地址栏具有正确的servlet URL,并且Glassfish在Glassfish 3管理面板中显示为与WAR文件中包含的其他servlet和东西一起安装。
我的sun-web.xml文件是Eclipse 3.5.1生成的标准文件,因此不应成为问题。任何人都可以指出我正确的方向与这个问题?服务器日志文件表明WAR已成功部署。
感谢。
答案 0 :(得分:7)
有两种可能性浮现在脑海中:
(1)servlet(或webapp,如果不同)无法启动。日志或控制台中应该有ERROR信息。
(2)servlet位于不是root用户的webapp中 - 例如/ myWebApp - 而URL指定http://myHost.com/servlet/FormAction时应该是http://myHost.com/myWebApp/servlet/FormAction