我有一個通過Tomcat 6從Eclipse Ganymede部署的JSF應用程序。後者提出了JSP 2.0。我正在使用Sun RI JSF實現和RichFaces 3.3.2SR1。Tomcat 6 JSF/JSP文件名配置問題
從瀏覽器請求我的index.jsp文件導致此錯誤控制檯:關於這個問題
05-Mar-2010 12:04:41 org.apache.catalina.core.ApplicationDispatcher invoke SEVERE: Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: /index.jsp(35,41) #{..} is not allowed in template text
...
OK,我已經看到了其他各種職位,包括版本的不兼容性各個罐/標籤庫/語法等
中的index.jsp使用http://localhost:8989/myapp/index.jsf
稱爲(或.JSP - 賦予相同的錯誤),並含有
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
這應該是正常的,因爲facelets是在我正在使用的Mojarra 2.0.2FCS。我似乎不得不使用上述語法而不是例如。作爲facelets URI的<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
導致Eclipse說Cannot find the tag library descriptor for "http://java.sun.com/jsf/facelets"
。
我的問題是與我列出這些標籤的方式有關嗎?
我的Ant構建文件是指這些Tomcat的罐子:
<fileset dir="${cliTomcatlib}">
<include name="servlet-api.jar" />
<include name="jsp-api.jar" />
</fileset>
讓我很爲難,我怎麼能避開這個錯誤。這感覺就像是一個簡單的修復,但是當我使用最新的應該與JSP 2.0兼容的jar時,我想知道爲什麼我會得到這個錯誤。 JSF
編輯 針對BalusC的智慧,我糾正兩個引用外部JSP文件並重新命名爲所有.jsp
到.xhtml
。我記得也更新我的faces-config.xml
。
當請求index.xhtml
現在這個樣子重新部署一個龐大而重複的錯誤,錯誤:
05-Mar-2010 13:29:26 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.StackOverflowError
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:824)
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:544)
...
at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:216)
at org.apache.catalina.core.ApplicationHttpRequest.getSession(ApplicationHttpRequest.java:544)
at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:151)
at javax.faces.application.ViewHandler.calculateCharacterEncoding(ViewHandler.java:242)
at javax.faces.application.ViewHandler.initView(ViewHandler.java:458)
at com.sun.faces.application.view.MultiViewHandler.initView(MultiViewHandler.java:106)
at org.ajax4jsf.application.ViewHandlerWrapper.initView(ViewHandlerWrapper.java:128)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:109)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
這點我承認不低於堆棧跟蹤的前幾行非常illuminatory其他重複這麼多次我不得不改變Eclipse上的控制檯緩衝區。如果有人曾經見過,我會感激不盡。
馬克
BalusC,看到我的問題更新。感謝您的幫助。 – volvox 2010-03-05 13:30:39
答案中的關鍵詞是'諮詢','文件','配置'和'正確'。感謝BalusC爲巴掌。 – volvox 2010-03-06 10:38:31