我使用JSF创建了一个Web应用程序,并在Tomcat上运行它。
在webapp中,有几个动态创建的URL。例如,/ ny /不是根(WebContent)文件夹下的文件夹。当用户请求/ ny /时,PhaseListener将viewId设置为某个页面。渲染结果页面时没有错误。
但是,我在tomcat的catalina.out文件中收到此警告:
WARNING: JSF1091: No mime type could be found for file /ny/home.jsp. To resolve this, add a mime-type mapping to the applications web.xml.
我有两个问题:
1)当我没有在我的应用程序中的任何地方使用.jsp文件时,为什么tomcat正在寻找.jsp文件?我在web.xml文件中的任何地方都没有.jsp文件的映射。
2)如何让tomcat查找/ny/home.jsf而不是/ny/home.jsp或者如何阻止tomcat在catalina.out中记录这个?
我的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">
<welcome-file-list>
<welcome-file>home.jsf</welcome-file>
<welcome-file>index.php</welcome-file>
</welcome-file-list>
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
<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>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<security-constraint>
<display-name>Restrict access to Facelets source code.</display-name>
<web-resource-collection>
<web-resource-name>Facelets</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Production</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>
<welcome-file-list>
<welcome-file>home.jsf</welcome-file>
<welcome-file>index.jsf</welcome-file>
<welcome-file>welcome.jsf</welcome-file>
<welcome-file>index.html</welcome-file>
<welcome-file>index.php</welcome-file>
</welcome-file-list>
<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>
</web-app>
答案 0 :(得分:1)
这似乎是Mojarra 2.2.0(2013年5月发布)中的一个错误,该错误至少在Mojarra 2.2.10(2015年2月发布)中得到解决。因此,升级到至少该版本应该这样做。