Ok I cannot really help with the viewExpired Problem except for that it
indicates a problem on GAEs side.
But I ran your Ajax problem quickly through and for me it works locally
here. So I assume you run into a GAE related issue here as well.
I will do a GAE testsetup as my scarce time permits to run this through,
but I really assume a gae related problem or a deployment related
problem here.
It would be interesting to know if in the ajax case the browser throws
any errors. What does the browser error console say?
Werner
Am 24.10.10 20:14, schrieb ken keller:
Yesterday evening I noticed java.io.InvalidObjectException stopped being
thrown. I don't know why but I hope it is related to switching from eclipse
to intellij& not due to gae. (I also learned facelets is built into jsf2 so
a separate jar isn't required.)
I have two new problems which only happen on live gae--not dev gae:
1) I'm testing jsf-basics.zip on
http://www.coreservlets.com/JSF-Tutorial/jsf2/code/.
* open bank-lookup.jsf
* fill in form
* click [Show Current Balance]
* the correct jsf page is displayed
* click chrome's Back
* javax.faces.application.ViewExpiredException is thrown (whether using
client or server state saving):
org.apache.myfaces.shared_impl.util.StateUtils reconstruct: View State
cannot be reconstructed
javax.faces.FacesException:
javax.faces.application.ViewExpiredException
at
org.apache.myfaces.shared_impl.util.StateUtils.decrypt(StateUtils.java:
490)
at
org.apache.myfaces.shared_impl.util.StateUtils.reconstruct(StateUtils.java:
378)
at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getSavedState(Ht
mlResponseStateManager.java:
213)
at
org.apache.myfaces.renderkit.html.HtmlResponseStateManager.getState(HtmlRes
ponseStateManager.java:
160)
at
org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrategy.res
toreView
(DefaultFaceletsStateManagementStrategy.java:
140)
at
org.apache.myfaces.application.jsp.JspStateManagerImpl.restoreView(JspState
ManagerImpl.java:
388)
at
org.apache.myfaces.shared_impl.view.ViewDeclarationLanguageBase.restoreView
(ViewDeclarationLanguageBase.java:
106)
at
org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.restoreView
(FaceletViewDeclarationLanguage.java:
1277)
....
This doesn't happen if I submit the form with errors, fix them,& click
[Show Current Balance] button:
* open bank-lookup.jsf
* click [Show Current Balance] button
* validation errors are shown (post back)
* correct errors
* click [Show Current Balance] button
* click Back button
2) A simple use of<f:ajax> doesn't update:
<h:selectOneMenu id="menu" value="#{bankingBean.customerId}">
<f:ajax event="change" execute="@this" render="register"/>
<f:selectItems value="#{bankingBean.customerIds}"/>
</h:selectOneMenu>
<h:outputText id="register" value="#{bankingBean.customerId}"/>
On Thu, Oct 21, 2010 at 9:32 PM, ken keller<[email protected]> wrote:
I'm a JSF2/myfaces rookie. I have it working w/ Eclipse Helios& gae
Eclipse plugin. When I deploy it& visit my test page, a blank page is
displayed& the log entry is appended to this message. It appears to be a
session deserialization problem. Thx. for your help.
javax.servlet.ServletException: java.lang.RuntimeException:
java.io.InvalidObjectException: enum constant attributes does not exist in
class javax.faces.component.UIComponent$PropertyKeys
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:240)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
at
com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:135)
at
com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:261)
at
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8486)
at
com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:8484)
at
com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24)
at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:418)
at com.google.net.rpc.impl.Server$RpcTask.runInContext(Server.java:572)
at
com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:448)
at com.google.tracing.TraceContext.runInContext(TraceContext.java:688)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:326)
at
com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:318)
at
com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:446)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.RuntimeException: java.io.InvalidObjectException: enum
constant attributes does not exist in class
javax.faces.component.UIComponent$PropertyKeys
at
com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:413)
at
com.google.apphosting.runtime.jetty.SessionManager.createSessionFromEntity(SessionManager.java:376)
at
com.google.apphosting.runtime.jetty.SessionManager.loadSession(SessionManager.java:314)
at
com.google.apphosting.runtime.jetty.SessionManager.getSession(SessionManager.java:284)
at
org.mortbay.jetty.servlet.AbstractSessionManager.getHttpSession(AbstractSessionManager.java:237)
at
org.mortbay.jetty.servlet.SessionHandler.setRequestedId(SessionHandler.java:246)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:136)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
at
com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:238)
... 21 more
Caused by: java.io.InvalidObjectException: enum constant attributes does not
exist in class javax.faces.component.UIComponent$PropertyKeys
at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1721)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1343)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at java.util.HashMap.readObject(HashMap.java:1047)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1684)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1340)
at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1928)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1890)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java:1928)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1890)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at java.util.HashMap.readObject(HashMap.java:1047)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at
com.google.apphosting.runtime.jetty.SessionManager.deserialize(SessionManager.java:411)
... 30 more
Caused by: java.lang.IllegalArgumentException: No enum const class
javax.faces.component.UIComponent$PropertyKeys.attributes
at java.lang.Enum.valueOf(Enum.java:214)
at java.io.ObjectInputStream.readEnum(ObjectInputStream.java:1719)
... 69 more