Eclipse Heliosを使用して、JSFベースのプロジェクトを開始しようとしました。Eclipse&JSF&Tomcat 6:「FacesContextが見つかりません」
新しいワークスペースを作成した後、私はWebツールプラットフォームのものをインストールしました。すべてヘルプメニューの "Install New Software"を使用して、これはかなりうまくいった。
プロジェクトの開発を開始するには、ウィザードを使用して新しいプロジェクトを作成しました。このプロジェクトでは、Tomcat 6.0インスタンスとランタイムをダウンロードしてインストールし、プリセット「JavaServer Faces v1.2 Project」で設定しました。
私は1つのindex.jspファイル(JSFテンプレートを使用してウィザードで作成)を1つ作成し、JSF-outputTextを作成しました。
tomcatにデプロイすると動作するようです。私がやった
29.12.2010 18:24:00 org.apache.catalina.core.StandardWrapperValve invoke SCHWERWIEGEND: Servlet.service() for servlet jsp threw exception java.lang.RuntimeException: FacesContext not found at javax.faces.webapp.UIComponentClassicTagBase.getFacesContext(UIComponentClassicTagBase.java:321) at javax.faces.webapp.UIComponentClassicTagBase.setJspId(UIComponentClassicTagBase.java:228) at org.apache.jsp.login_jsp._jspx_meth_f_005fview_005f0(login_jsp.java:95) at org.apache.jsp.login_jsp._jspService(login_jsp.java:69) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662)
ひとつひとつのステップは、標準のクリックスルーウィザードプロセスでした:ブラウザでindex.jspのを呼び出すとき、私は何回か、次の例外を取得します。
なぜこれが機能しないのでしょうか?
私は簡単にスクリーンショットを投稿したり、それが役立つ場合は抜粋をファイルすることができますが、質問のオーバーロードを避けるためにここではしません。すでに
<?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" id="WebApp_ID" version="2.5">
<display-name>Stundenplan</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<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>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
</web-app>
:
編集:私は、全体のものを短縮するために、説明タグを削除する以外はweb.xmlのこのファイルには、Eclipseから直接来て、私はそれがそのまま残さurl-patternを
<url-pattern>/*</url-pattern>
に設定しようとしましたが、例外 "java.lang.NoClassDefFoundError:javax/servlet/jsp/jstl/core/Config"が出ています
ありがとうございました。Tobias