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

标签 apache jsf tomcat

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

在我的本地

  http://localhost/application/page.jsf     

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

访问相同的 url
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 日志文件没有显示在外部主机上找不到页面的错误。

这是faces配置文件

  <?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 服务器上返回未找到

另外,el-impl-2.2.jar 和 el-api-2.2.jar 在 tomcat 库中。 和 javax.faces-2.1.14.jar、jSTL-api-2.1.jar、jSTL-impl-2.1.jar 和所有必需的 commons jar 都在 WEB-INF 中。

最佳答案

我刚刚解决了这个问题。我花了 6 天时间调查如何解决这个问题。真是浪费时间。今天在工作中,我和我的同事谈过,他建议我将我的调查指向 tomcat 的 apache 连接器,因为我声称在我的本地 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     

我希望这对其他人有帮助。

关于apache - 在此服务器上找不到请求的 URL/application/index.jsf(Apache 和 Tomcat),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20692995/

相关文章:

linux - Apache2 运行 perl 脚本作为目录索引

apache - Apache Helix、Zookeeper、Mesos 和 Erlang 的真实示例?

python - 在 Mercurial hook 中获取经过身份验证的用户

jsf - IE9渲染 IE8文档标准

java - 部署 WAR 时 Tomcat 7 运行时错误

php - 头部的 Magento CSS 和 JS 包括来自文档根目录?

jsf - 如何使用 PrimeFaces 实现递归菜单

java - 登录页面错误

html - 在没有服务器端脚本的情况下设置 Access-Control-Allow-Origin

java - HTTP post 请求在生产环境中没有响应(与 tomcat 服务器的 war )