在此服务器(Apache和Tomcat)上找不到请求的URL /application/index.jsf

时间:2013-12-19 22:32:37

标签: apache jsf tomcat

我是stackoverflow粉丝。这个网站解决了大多数技术问题,甚至没有问过他们,只是阅读以前的类似问题。事实上,我已经搜索了网络和stackoverflow,但我找不到任何答案,我自己无法解决这个问题。我唯一的办法是寻求你的帮助。我已经开发了一个小型的JSF 2.0应用程序,一切都在我的本地tomcat 6.0.35上正常工作。我的WEB-INF上有所有的JSF库。我使用的是mojarra 2.1.14版。网址就像这样访问

在我当地的

  http://localhost/application/page.jsf     

并且此应用程序部署到具有apache和Tomcat 6.0.36的外部托管tomcat。该应用程序部署在/ home / username / public_html下。应输入

来访问相同的网址
http://website.com/application/page.jsf 

但我收到了错误:

未找到

在此服务器上找不到请求的URL /application/page.jsf。 此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。

此外,html和JSP页面工作正常。我有一个测试应用程序,它有jsp页面,它正在加载就好了。另一方面,xhtml页面不适用于此apache框。为了使JSP页面起作用,我添加了JSP和servlet支持

 /usr/local/cpanel/scripts/addservlets2 --domain=domain.com

这是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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

    <servlet>
    <servlet-name>FacesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
    <servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
     <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

<context-param>
    <param-name>com.sun.faces.expressionFactory</param-name>
     <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
   </context-param>
  </web-app>

我坚信这个web.xml与jsf无关,而且这些设置在我的本地工作得很好。 tomcat日志文件未显示外部主机上找不到页面错误。

这是面部配置文件

  <?xml version="1.0"?>
  <faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
   version="2.0">


 </faces-config>

发生了什么事?请帮我。我变得绝望了。为什么JSF请求在此apache服务器上返回 not found

另外el-impl-2.2.jar和el-api-2.2.jar都在tomcat libs中。 和javax.faces-2.1.14.jar,jstl-api-2.1.jar,jstl-impl-2.1.jar以及所有必需的公共jar都在WEB-INF中。

1 个答案:

答案 0 :(得分:0)

我刚刚解决了这个问题。我花了6天时间调查如何解决这个问题。真是浪费时间。今天在工作中,我和我的同事交谈,他建议我将我的调查指向apache连接器到tomcat,因为我声称我的本地tomcat服务器上的一切正常。我做了一些研究,发现我需要编辑cp_jkmount.conf连接器。 JkMount用于将上下文路径映射到Tomcat worker。我添加了以下

 <IfModule mod_jk.c>
     JkMount /*.xhtml ajp13
     JkMount /*.jsf ajp13
 </IfModule>

在这些连接器的末尾

 /usr/local/apache/conf/userdata/std/2/username/website.com/cp_jkmount.conf  

 /usr/local/apache/conf/userdata/ssl/2/username/website.com/cp_jkmount.conf     

我希望这会帮助别人。