0

我是 JSF 的新手,所以我尝试使用 Websphere 8 在 Eclipse 中开发简单的 JSF 项目,但出现以下错误:

Error 404: com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException: No target servlet configured for uri: /KeyValue/index.jsf 

我观察到,当我添加以下罐子时,我得到了这个 404 错误。

  1. jsf-api
  2. jsf-impl
  3. jstl-api-1.2
  4. jstl-impl-1.2

这是我的 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>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
      </servlet-mapping>
      <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
      </context-param>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
      </welcome-file-list>
    </web-app>

web.xml 文件有问题吗?我该如何解决这个问题?

4

1 回答 1

4

Websphere 作为一个成熟的 Java EE 应用程序服务器,已经带有 JSF 和 JSTL 开箱即用。当定位准系统 servlet 容器(如 Tomcat 或 Jetty)时,您不需要像必要那样在 Web 应用程序中提供它们。这些问题很可能是由 Websphere 提供的 JSF JAR 与 webapp 提供的 JSF JAR 之间的版本不兼容引起的,导致FacesServlet无法启动。如果没有功能FacesServlet*.jsfURL 将不再被识别,因此最终为 404。但是,有关FacesServlet启动问题的更多详细信息应该在服务器中 webapp 的启动日志中可见。

因此,从您的 Web 应用程序中删除这些 JSF 和 JSTL JAR,它应该可以按预期工作。

于 2012-12-07T11:20:01.450 回答