当我尝试运行我在Tomcat7中部署的Eclipse动态Web项目时,我收到错误404.
令我困惑的是,如果我在Eclipse中运行项目,它使用相同的Tomcat服务器,它正确执行xhtml页面。
我将项目导出为战争并保留了Eclipse创建的web.xml。 我启动了Tomcat服务器,并使用" War文件部署" Tomcat的经理选项。部署结果肯定,但应用程序仍然没有启动,neithet通过单击Tomcat管理器中的相应链接,也不会在新的浏览器页面中复制URL。
我的O.S是Ubuntu 17.04 Tomcat7附带IDE Ecplipse安装 在项目中我也使用了IceFaces。
我确实创建了一个更简单的动态Web项目,其中只包含一个经典的" Hello wordl" xhtml页面;行为是相同的:当在Eclipse上运行时,没有问题,当导出时,通过在管理器页面中单击其链接来部署在Tomcat中运行我得到404错误。
我已经阅读了其他类似的帖子,但我无法找到适合我的任何解决方案。
我的web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http:// java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>IceTest</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
</web-app>
请注意我也试图改变
<param-value>client</param-value>
与
<param-value>server</param-value>
也许你有人暗示这个问题? 我提前谢谢你。
答案 0 :(得分:0)
与此同时,我发现了问题所在。
我的html页面与我的web.xml中列出的名称不同。 我认为welcome-file-list是一个可选标签。确实,如果html页面已被命名为index.html(Tomcat默认值),但如果它不同,则必须定义welcome-file-list。
我留下这个答案,因为它对我怀疑同样的其他人有用。