[TEEDA-25] STATE_SAVING_METHODがclientの場合にNotSerializableExceptionが発生する Created: 2006-07-29 Updated: 2006-07-29 Resolved: 2006-07-29 |
|
Status: | Resolved |
Project: | Teeda |
Component/s: | Teeda Core |
Affects Version/s: | 1.0-beta-5 |
Fix Version/s: | 1.0-beta-6 |
Type: | Bug | Priority: | Major |
Reporter: | manhole | Assignee: | manhole |
Resolution: | Fixed | Votes: | 0 |
Labels: | None | ||
Environment: |
teeda-jsp-example (Revision 1457) |
Description |
teeda-jsp-example (Revision 1457) にてjavax.faces.STATE_SAVING_METHODをclient設定し、 org.apache.jasper.JasperException: [ESSR0040]IO例外が発生しました。理由はjava.io.NotSerializableException: javax.faces.convert.DateTimeConverter org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.seasar.teeda.core.util.ServletExternalContextUtil.dispatch(ServletExternalContextUtil.java:122) org.seasar.teeda.core.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:110) org.seasar.teeda.core.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:185) org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:37) org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:55) org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:134) javax.faces.webapp.FacesServlet.service(FacesServlet.java:80) org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63) 原因 org.seasar.framework.exception.IORuntimeException: [ESSR0040]IO例外が発生しました。理由はjava.io.NotSerializableException: javax.faces.convert.DateTimeConverter org.seasar.teeda.core.util.ObjectOutputStreamUtil.writeObject(ObjectOutputStreamUtil.java:44) org.seasar.teeda.core.render.Base64EncodeConverter.getAsEncodeString(Base64EncodeConverter.java:56) org.seasar.teeda.core.render.html.HtmlResponseStateManager.writeState(HtmlResponseStateManager.java:48) org.seasar.teeda.core.application.impl.TeedaStateManagerImpl.writeState(TeedaStateManagerImpl.java:85) org.seasar.teeda.core.taglib.core.ViewTag.doAfterBody(ViewTag.java:133) org.apache.jsp.converter.converter_jsp._jspx_meth_f_view_0(org.apache.jsp.converter.converter_jsp:118) org.apache.jsp.converter.converter_jsp._jspService(org.apache.jsp.converter.converter_jsp:78) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.seasar.teeda.core.util.ServletExternalContextUtil.dispatch(ServletExternalContextUtil.java:122) org.seasar.teeda.core.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:110) org.seasar.teeda.core.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:185) org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:37) org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:55) org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:134) javax.faces.webapp.FacesServlet.service(FacesServlet.java:80) org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:63) |
Comments |
Comment by manhole [ 2006-07-29 ] |
UIOutput#restoreStateが次のようになっていたので、 public void restoreState(FacesContext context, Object state) { Object[] values = (Object[]) state; super.restoreState(context, values[0]); converter = (Converter) values[1]; // ココ value = values[2]; } 次のように修正しました。 public void restoreState(FacesContext context, Object state) { Object[] values = (Object[]) state; super.restoreState(context, values[0]); converter = (Converter) restoreAttachedState(context, values[1]); // ココ value = values[2]; } (Revision 1481で修正済み) |