У меня есть приложение JSF, развертывающееся из Eclipse Ganymede через Tomcat 6. Последнее предлагает 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
...
ОК, я видел различные другие посты на эту тему, включая несовместимости версий из различных банок// синтаксисов библиотеки тегов и т.д.
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, который я использую. Кажется, мне приходится использовать вышеупомянутый синтаксис, а не, например. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
, так как URI-личинки заставляет 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, мне интересно, почему я получаю эту ошибку. JSF
EDIT В ответ на мудрости 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
Ключевыми словами в этом ответе являются «консультации», «документация», «настройка» и «правильная». Спасибо, BalusC за пощечину. – volvox