Hi, I tried to build a page with a clock. When I call the page, the clock is rendered, but after the first update after the renderer interval of 5 seconds I get a PhaseListener Exception:
| | 10:48:02,125 INFO [ClockBean] setRenderManager | 10:48:02,125 INFO [RenderHub] scheduled render service created: | core pool size : 5 | 10:48:02,140 INFO [ClockBean] getServerTime | 10:48:07,140 INFO [RenderHub] core render service created: | core pool size : 10 | max pool size : 15 | keep alive time: 300000 | 10:48:07,140 INFO [ClockBean] getState = [EMAIL PROTECTED]@531e15] | 10:48:07,140 ERROR [PhaseListenerManager] Exception in PhaseListener RENDER_RESPONSE(6) beforePhase. | java.lang.NullPointerException | at org.jboss.seam.util.Parameters.convertMultiValueRequestParameter(Parameters.java:48) | at org.jboss.seam.pdf.DocumentStorePhaseListener.beforePhase(DocumentStorePhaseListener.java:32) | at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:70) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:373) | at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:180) | at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | 10:48:07,140 INFO [ClockBean] renderingException fatal render failure for viewNumber 1 | | Because i wondered why a method from org.jboss.seam.pdf.DocumentStorePhaseListener is called, I removed the jboss-seam-pdf.jar from clocktest.ear\clocktest.war\WEB-INF\lib. After this I get the following output: | | 10:53:59,468 INFO [ClockBean] setRenderManager | 10:53:59,562 INFO [RenderHub] scheduled render service created: | core pool size : 5 | 10:53:59,625 INFO [ClockBean] getServerTime | 10:54:04,625 INFO [RenderHub] core render service created: | core pool size : 10 | max pool size : 15 | keep alive time: 300000 | 10:54:04,640 INFO [ClockBean] getState = [EMAIL PROTECTED]@1930e5b] | 10:54:04,640 ERROR [SeamPhaseListener] uncaught exception | java.lang.IllegalStateException: No active application scope | at org.jboss.seam.core.Init.instance(Init.java:78) | at org.jboss.seam.jsf.TransactionalSeamPhaseListener.handleTransactionsBeforePhase(TransactionalSeamPhaseListener.java:22) | at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:49) | at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:70) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:373) | at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:180) | at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | 10:54:04,640 ERROR [SeamPhaseListener] swallowing exception | java.lang.IllegalStateException: No active application scope | at org.jboss.seam.core.Init.instance(Init.java:78) | at org.jboss.seam.jsf.TransactionalSeamPhaseListener.handleTransactionsBeforePhase(TransactionalSeamPhaseListener.java:22) | at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:49) | at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:70) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:373) | at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:180) | at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | 10:54:04,640 ERROR [SeamPhaseListener] uncaught exception | java.lang.IllegalStateException: No active application scope | at org.jboss.seam.core.Init.instance(Init.java:78) | at org.jboss.seam.jsf.TransactionalSeamPhaseListener.handleTransactionsAfterPhase(TransactionalSeamPhaseListener.java:34) | at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:112) | at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391) | at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:180) | at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | 10:54:04,640 ERROR [SeamPhaseListener] swallowing exception | java.lang.IllegalStateException: No active application scope | at org.jboss.seam.core.Init.instance(Init.java:78) | at org.jboss.seam.jsf.TransactionalSeamPhaseListener.handleTransactionsAfterPhase(TransactionalSeamPhaseListener.java:34) | at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:112) | at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:89) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:391) | at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.render(PersistentFacesState.java:180) | at com.icesoft.faces.async.render.RunnableRender.run(RunnableRender.java:89) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) | at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) | at java.lang.Thread.run(Thread.java:595) | 10:54:04,640 INFO [ClockBean] renderingException fatal render failure for viewNumber 1 | | My environment: JBoss AS 4.0.5.GA, JBoss Seam 1.1.7.RC1, IceFaces 1.5.3 Below my code: The ClockBean: | | import java.io.Serializable; | import java.text.SimpleDateFormat; | import java.util.Calendar; | | import org.jboss.seam.ScopeType; | import org.jboss.seam.annotations.Logger; | import org.jboss.seam.annotations.Name; | import org.jboss.seam.annotations.Scope; | import org.jboss.seam.log.Log; | | import com.icesoft.faces.async.render.IntervalRenderer; | import com.icesoft.faces.async.render.RenderManager; | import com.icesoft.faces.async.render.Renderable; | import com.icesoft.faces.webapp.xmlhttp.PersistentFacesState; | import com.icesoft.faces.webapp.xmlhttp.RenderingException; | | @Name("clock") | @Scope(ScopeType.SESSION) | public class ClockBean implements Renderable, Serializable { | | private static final long serialVersionUID = -3056813303865921418L; | | @Logger | private Log log; | | private final int renderInterval = 5000; | | private PersistentFacesState state; | | private IntervalRenderer clock; | | public void setRenderManager(RenderManager renderManager) { | log.info("setRenderManager"); | clock = renderManager.getIntervalRenderer("clock"); | clock.setInterval(renderInterval); | clock.add(this); | clock.requestRender(); | } | | public RenderManager getRenderManager() { | return null; | } | | public PersistentFacesState getState() { | if (null == state) | state = PersistentFacesState.getInstance(); | if (null == state) | log.info("getState = NULL"); | else | log.info("getState = #0", state.toString()); | return state; | } | | public void renderingException(RenderingException renderingException) { | log.info("renderingException #0", renderingException.getMessage()); | if (clock != null) { | clock.remove(this); | clock = null; | } | } | | public String getServerTime() { | log.info("getServerTime"); | SimpleDateFormat currentFormat = new SimpleDateFormat( | "dd.MM.yyyy HH:mm"); | Calendar cal = currentFormat.getCalendar(); | cal.setTimeInMillis(System.currentTimeMillis()); | return currentFormat.format(cal.getTime()); | } | | public void setServerTime(String serverTime) { | | } | } | | the home.xhtml: | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | <html 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:s="http://jboss.com/products/seam/taglib" | xmlns:ice="http://www.icesoft.com/icefaces/component" | xml:lang="de" lang="de"> | <head> | <meta http-equiv="Content-Type" | content="text/html; charset=iso-8859-1" /> | <title>Uhren test</title> | | </head> | | <body> | <f:view> | <div> | <ice:outputText value="#{clock.serverTime}" /> | </div> | </f:view> | </body> | | </html> | | the components.xml: | | <?xml version="1.0" encoding="UTF-8"?> | <components xmlns="http://jboss.com/products/seam/components" | xmlns:core="http://jboss.com/products/seam/core" | xmlns:drools="http://jboss.com/products/seam/drools" | xmlns:security="http://jboss.com/products/seam/security" | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xsi:schemaLocation= | "http://jboss.com/products/seam/core http://jboss.com/products/seam/core-1.1.xsd | http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-1.1.xsd | http://jboss.com/products/seam/security http://jboss.com/products/seam/security-1.1.xsd | http://jboss.com/products/seam/components http://jboss.com/products/seam/components-1.1.xsd"> | | <core:init debug="true" jndi-pattern="@jndiPattern@"/> | | <core:manager concurrent-request-timeout="500" | conversation-timeout="120000" | conversation-id-parameter="cid" | conversation-is-long-running-parameter="clr"/> | | <core:pages no-conversation-view-id="/home.xhtml"/> | | <core:managed-persistence-context name="entityManager" | persistence-unit-jndi-name="java:/clocktestEntityManagerFactory"/> | | <core:ejb installed="@embeddedEjb@"/> | | <component name="renderManager" | class="com.icesoft.faces.async.render.RenderManager" | scope="APPLICATION" /> | | <component name="clock" scope="SESSION"> | <property name="renderManager">#{renderManager}</property> | </component> | | </components> | | the faces-config.xml: | | <?xml version='1.0' encoding='UTF-8'?> | <!DOCTYPE faces-config PUBLIC | "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" | "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> | | <faces-config> | | <application> | <message-bundle>messages</message-bundle> | <view-handler>com.icesoft.faces.facelets.D2DSeamFaceletViewHandler</view-handler> | </application> | | <!-- Seam transaction management --> | <lifecycle> | <phase-listener>org.jboss.seam.jsf.TransactionalSeamPhaseListener</phase-listener> | </lifecycle> | | <!-- No Seam transaction management --> | <!-- | <lifecycle> | <phase-listener>org.jboss.seam.jsf.SeamPhaseListener</phase-listener> | </lifecycle> | --> | | </faces-config> | | the web.xml: | | <?xml version="1.0" ?> | <web-app xmlns="http://java.sun.com/xml/ns/j2ee" | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" | version="2.4"> | | <context-param> | <param-name>javax.faces.CONFIG_FILES</param-name> | <param-value>/WEB-INF/navigation.xml</param-value> | </context-param> | | <listener> | <listener-class> | org.jboss.seam.servlet.SeamListener | </listener-class> | </listener> | | <listener> | <listener-class> | org.apache.myfaces.webapp.StartupServletContextListener | </listener-class> | </listener> | | <context-param> | <param-name>javax.faces.STATE_SAVING_METHOD</param-name> | <param-value>client</param-value> | </context-param> | | <context-param> | <param-name>facelets.DEVELOPMENT</param-name> | <param-value>true</param-value> | </context-param> | | <context-param> | <param-name>javax.faces.DEFAULT_SUFFIX</param-name> | <param-value>.xhtml</param-value> | </context-param> | | | <filter> | <filter-name>Seam Exception Filter</filter-name> | <filter-class> | org.jboss.seam.servlet.SeamExceptionFilter | </filter-class> | </filter> | | <!-- | <filter> | <filter-name>Seam Redirect Filter</filter-name> | <filter-class>org.jboss.seam.servlet.SeamRedirectFilter</filter-class> | </filter> | --> | | <filter-mapping> | <filter-name>Seam Exception Filter</filter-name> | <url-pattern>/*</url-pattern> | </filter-mapping> | | <!-- | <filter-mapping> | <filter-name>Seam Redirect Filter</filter-name> | <url-pattern>*.seam</url-pattern> | </filter-mapping> | --> | | <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>*.seam</url-pattern> | </servlet-mapping> | --> | <context-param> | <param-name>com.icesoft.faces.actionURLSuffix</param-name> | <param-value>.seam</param-value> | </context-param> | | <context-param> | <param-name>com.icesoft.faces.synchronousUpdate</param-name> | <param-value>true</param-value> | </context-param> | | <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> | <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-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>/xmlhttp/*</url-pattern> | </servlet-mapping> | | <servlet-mapping> | <servlet-name>Persistent Faces Servlet</servlet-name> | <url-pattern>*.iface</url-pattern> | </servlet-mapping> | | <!-- Blocking Servlet Mapping --> | <servlet-mapping> | <servlet-name>Blocking Servlet</servlet-name> | <url-pattern>/block/*</url-pattern> | </servlet-mapping> | | <!-- Faces Servlet Mapping --> | <servlet-mapping> | <servlet-name>Persistent Faces Servlet</servlet-name> | <url-pattern>*.seam</url-pattern> | </servlet-mapping> | | <welcome-file-list> | <welcome-file>index.html</welcome-file> | </welcome-file-list> | </web-app> | | Has someone an idea what's wrong? Thanks Ludger ! View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4022962#4022962 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4022962 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user