我有一个 JSF2 应用程序 我可以访问我的应用程序 @ http://tvmteleshopping.com/faces/ui/manageProfile.xhtml
但是当我使用 http://tvmteleshopping.com/ui/manageProfile.xhtml (没有/faces/) 此请求由 Apache 而不是 tomcat 提供服务。仅呈现任何静态 HTML 内容。
我使用 Apache 提供静态 HTML 文件,使用 tomcat 提供 *.xhtml 文件
我的 Servlet 映射没问题: web.xml
<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>
<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>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
我的 cp_jkmount.conf 将 jsp 和 jsf 文件重定向到 tocat 服务器。
<IfModule mod_jk.c>
JkMount /*.jsp ajp13
JKMount /*.do ajp13
JKMount /servlet/* ajp13
JKMount /servlets/* ajp13
JKMount /*.xhtml ajp13
JKMount /ui/* ajp13
JKMount /ui/*.xhtml ajp13
JKMount /faces/* ajp13
JKMount /*.jsf ajp13
</IfModule>
我有两个cp_jkmount.conf,一个在/usr/local/apache/conf/userdata/std/1/myuser/mysite.com/cp_jkmount.conf
还有一个 /usr/local/apache/conf/userdata/std/2/myuser/mysite.com/cp_jkmount.conf
我的两个 cp_jkmount 都是一样的。 我不知道为什么我在两个不同的目录中有两个 cp_jkmount.conf。
P.S:我的应用程序对于根文件夹中的那些 .xhtml 文件工作正常 http://tvmteleshopping.com/index.xhtml
为此,我认为我的 cp_jkmout.conf 工作正常。但对于“ui”文件夹后面的那些 .xhtml 文件,它不起作用。
最佳答案
你为什么不用
http://tvmteleshopping.com/manageProfile.jsf
代替
http://tvmteleshopping.com/ui/manageProfile.xhml
或任何其他超链接?
让框架为您定位页面,而不是您明确提及路径。
关于apache - 没有/faces/无法访问 JSF2 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334098/