2013-03-31 4 views
0

Я начинаю работать в ICEFACES, пытаясь запустить мой первый экран ICEFACES с помощью некоторых компонентов ICEFACES. Для начала. Я использую ICEFACES 1.8.2.javax.servlet.ServletException: ICEfaces требует PersistentFacesServlet

я скопировал содержание моего web.xml по этой ссылке:

http://res.icesoft.org/docs/v1_8_2/htmlguide/gettingstarted/SessionRendererTutorial11.html#1054095

Ниже файл лица-config.xml:

<faces-config 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd" 
version="1.2"> 
<application> 
    <view-handler> 
    com.icesoft.faces.facelets.D2DFaceletViewHandler 
    </view-handler> 
</application> 
</faces-config> 

Ниже test.jsp содержание на экране:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> 
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> 
<%@ taglib prefix="ice" uri="http://www.icesoft.com/icefaces/component"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<f:view> 
    <ice:outputText id="txtHello" value="Hello ICEFaces"></ice:outputText> <br> 
    <ice:panelGroup title="Hello"></ice:panelGroup> 
</f:view> 
</body> 
</html> 

Когда я запустить приложение, используя приведенный ниже URL:

http://localhost:8046/TestMojarra/faces/Test.jsp

Я получаю исключение:

javax.servlet.ServletException: ICEfaces requires the PersistentFacesServlet. Please check your web.xml servlet mappings javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)

java.lang.IllegalStateException: ICEfaces requires the PersistentFacesServlet. Please check your web.xml servlet mappings com.icesoft.faces.context.DOMResponseWriter.<init>(DOMResponseWriter.java:154) com.icesoft.faces.context.DOMContext.createTemporaryDOMResponseWriter(DOMContext.java:182) com.icesoft.faces.context.DOMContext.getDOMContext(DOMContext.java:228) com.icesoft.faces.renderkit.dom_html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:89) javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:840) javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:151) com.icesoft.faces.application.D2DViewHandler.renderView(D2DViewHandler.java:151) com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)

Но если я закомментируйте <ice:panelGroup> линию от над файлом jsp отображается экран.

Пожалуйста, дайте мне знать, где проблема.

+0

0 похоже на то, что вы не используете PersistentFacesServlet, как указано в начале этого урока. Можете ли вы опубликовать свой web.xml? – EdH

+0

Хм, глядя на web.xml, файлы jsp не будут подхвачены PersistentFacesContext. Попробуйте переименовать файл в .jspx – EdH

+0

Спасибо за ответ. Если я переименую его в '.jspx', то получаю это исключение:' java.lang.Exception: javax.faces.FacesException: проблема в renderResponse: /Test.xhtml не найдена в ExternalContext как ресурс. Не уверен, откуда эта xhtml часть comming :( – user182944

ответ

1

Это все, что я когда-либо делал в своем web.xml. Я имел заявление сервлет

<servlet> 
    <servlet-name>Persistent Faces Servlet</servlet-name> 
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet> 
    <servlet-name>Blocking Servlet</servlet-name> 
    <servlet-class>com.icesoft.faces.webapp.xmlhttp.BlockingServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

а также отображения на сервлеты

<servlet-mapping> 
    <servlet-name>Persistent Faces Servlet</servlet-name> 
    <url-pattern>/ifaces/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Persistent Faces Servlet</servlet-name> 
    <url-pattern>/xmlhttp/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Persistent Faces Servlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Blocking Servlet</servlet-name> 
    <url-pattern>/block/*</url-pattern> 
</servlet-mapping> 

Я всегда Xhtml файлов, хотя и не Jsp файлы. Но это всегда срабатывало для меня.

EDIT Я повторно отредактировал ваш образец в формате xhtml. Было два тега, которые не были действительны xhtml. Но это то, что обычно работало для меня

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ice="http://www.icesoft.com/icefaces/component" 
     xmlns:f="http://java.sun.com/jsf/core"> 
<html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/> 
    <title>Insert title here</title> 
    </head> 
    <body> 
    <f:view> 
     <ice:outputText id="txtHello" value="Hello ICEFaces"></ice:outputText> <br/> 
     <ice:panelGroup title="Hello"></ice:panelGroup> 
    </f:view> 
    </body> 
</html> 
+0

Спасибо за ответ. Не могли бы вы разместить образец xhtml-файла, содержащий выходной текст и компонент ice: Panel? Мне нужно проверить несколько вещей: 1) Начальные теги (т.е. строки, находящиеся над DOCTYPE) для файлов xhtml. 2) Сообщите мне, использует ли web.xml v2.4 или 2.5. Я чувствую, что проблема связана только с несоответствием версии. – user182944

+0

Я отредактировал свой ответ с xhtml-совместимой версией страницы jsp, связанной с этим вопросом.Теги meta и br были недействительными xhtml, и я использовал синтаксис xml объявления тэга – EdH

+0

Я пробовал, но не работал :(Нужна дополнительная информация: 1) разместите тег web-приложения web.xml (первые два строки вашего web.xml) 2) разместите URL-адрес, который вы используете, чтобы запустить это простое демо-приложение (например, файл Tst.xhtml) – user182944

Смежные вопросы