我照JSF写的入门程序,但是报错说找不着Face Servlet实例。
我现在的问题就是网页能找到index.jsp文件。如果我把 <f:view> </f:view> 删了的话,能显示一个带标题的网页。但是,报错
说无法初始化FaceSevrlet。我想是不是,我的 |-myface-api-1.1.4.jar
|-myfaces-impl-1.1.4.jar文件放错了,但是我放在WEB-INF的lib中也出现这个错,我再查web.xml,觉得FaceServlet没有写错啊
<servlet>
<servlet-name> Faces Servlet </servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>
不就是在WEB启动时初始化一个Faces Servlet的实例吗,
<servlet-mapping>
<servlet-name> Faces Servlet </servlet-name>
<url-pattern> *.faces </url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file> pages/index.jsp </welcome-file>
</welcome-file-list>
所有的*.faces资源对应的*.jsp文件。那错误在哪里呢,真的想不出来。
严重: Faces context not found. getResponseWriter will fail. Check if the FacesServlet has been initialized at all in
your web.xml.
2007-6-5 8:22:29 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at javax.faces.webapp.UIComponentTag.setupResponseWriter(UIComponentTag.java:929)
at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:310)
at org.apache.myfaces.taglib.core.ViewTag.doStartTag(ViewTag.java:70)
at org.apache.jsp.pages.index_jsp._jspx_meth_f_view_0(index_jsp.java:86)
at org.apache.jsp.pages.index_jsp._jspService(index_jsp.java:61)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
hello
|- src
|- JRE System Library
|- J2EE 1.4 Library Container
|-myface-api-1.1.4.jar
|-myfaces-impl-1.1.4.jar
|-META-INF
|-pages
|--index.jsp
|--welcome.jsp
|-WEB-INF
|--lib
|--faces-config.xml
|--web.xml
|-work
这是web目录结构。
以下是代码:
web.xml
<?xml version= "1.0 " encoding= "ISO-8859-1 "?>
<web-app xmlns= "http://java.sun.com/xml/ns/j2ee "
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd "
version= "2.4 ">
<description>
JSF Demo
</description>
<display-name> JSF Demo </display-name>
<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>
<welcome-file-list>
<welcome-file> pages/index.jsp </welcome-file>
</welcome-file-list>
</web-app>
这是faces-config.xml
<?xml version= "1.0 "?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN "
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd ">
<faces-config>
<navigation-rule>
<from-view-id> * </from-view-id>
<navigation-case>
<from-outcome> success </from-outcome>
<to-view-id> pages/welcome.jsp </to-view-id>
</navigation-case>
<navigation-case>
<from-outcome> failure </from-outcome>
<to-view-id> pages/index.jsp </to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<managed-bean-name> user </managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
</faces-config>
这是index.jsp文件
<%@ taglib uri= "http://java.sun.com/jsf/core " prefix= "f " %>
<%@ taglib uri= "http://java.sun.com/jsf/html " prefix= "h " %>
<%@page contentType= "text/html;charset=Big5 "%>
<html>
<head>
<title> 第一個JSF程式 </title>
</head>
<body>
<f:view>
</f:view>
</body>
[解决办法]
jar放到WEB-INF/lib下。
[解决办法]
同一楼
jar放到WEB-INF/lib下add to path即可