JSFエラー ーブレット jsp のServlet.service()が例外を投げましたjavax.servlet.jsp.JspException: Cannot find FacesContext の解決策

JSFで発生したExceptionとその対応策です。
[発生したException]
以下のリクエストURLでjudge.jspにアクセスしようとして発生した例外。
※コンテキストルートは「JsfSample1」とします。
http://localhost:8080/JsfSample1/judge.jsp

2008/01/24 9:59:16 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット jsp のServlet.service()が例外を投げました
javax.servlet.jsp.JspException: Cannot find FacesContext
	at javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:427)
	at com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:125)
	at org.apache.jsp.judge_jsp._jspx_meth_f_005fview_005f0(judge_jsp.java:131)
	at org.apache.jsp.judge_jsp._jspService(judge_jsp.java:105)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

[Exceptionの発生した環境]

  • JDK1.5.0_13
  • eclipse3.2
  • Tomcat5.5.25
  • JSTL1.1.2
  • JSF1.1

[原因推測と対応策]
これはJSFサーブレットを経由せずに、JSFコンポーネントを利用するjudge.jspに直接アクセスしたためです。代わりに次のURLでアクセスします。
http://localhost:8080/JsfSample1/samplefaces/judge.jsp
※WEB-INF/web.xmlでのサーブレット設定と関連します。

<!-- Faces Servlet -->
<servlet>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup> 1 </load-on-startup>
</servlet>

<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/samplefaces/*</url-pattern>★ここのURL"/samplefaces/"をjudge.jspを指定するリクエストのURL間に挟みます
</servlet-mapping>