我是JSF的新手,所以我尝试使用Websphere 8在Eclipse中开发简单的JSF项目,但是我收到以下错误:
Error 404: com.ibm.ws.webcontainer.servlet.exception.NoTargetForURIException: No target servlet configured for uri: /KeyValue/index.jsf
我观察到当我添加以下罐子时,我得到这个404错误。
以下是我的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文件有问题吗?我该如何解决这个问题?
答案 0 :(得分:4)
Websphere已经成为一个完整的Java EE应用服务器,已经开箱即用JSF和JSTL。在针对像Tomcat或Jetty这样的准系统servlet容器时,您不需要像在需要时那样在Web应用程序中提供它们。这些问题很可能是由Websphere提供的JSF JAR与webapp提供的JSF JAR之间的版本不兼容引起的,导致FacesServlet
无法启动。如果没有正常运行的FacesServlet
,则*.jsf
网址将不再被识别,因此最终为404.但是,有关FacesServlet
启动问题的详细信息应该在webapp的启动日志中可见服务器。
因此,从Web应用程序中删除这些JSF和JSTL JAR,它应该按预期工作。