Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.1
-
Fix Version/s: 2.2.1
-
Labels:None
-
Environment:Windows XP
GWT 1.5
-
Number of attachments :1
Description
Hi,
I cannot launch a GWT app in hosted mode with the gwt:run goal. I get a serialization error :
[INFO] StandardContext[]ERROR: The serialization policy file '/test.GMavenTest/3D8C9ED7A7ACB57FC755C1283A84575C.gwt.rpc' was not found; did you forget to include it in this deployment?
[INFO] StandardContext[]WARNING: Failed to get the SerializationPolicy '3D8C9ED7A7ACB57FC755C1283A84575C' for module 'http://localhost:8888/test.GMavenTest/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.
And then I get serialization exceptions.
Look at the attached sample project.
-
Hide
- gmaven-test.zip
- 26/Jun/09 5:16 AM
- 10 kB
- zaccret
-
- gmaven-test/.classpath 0.7 kB
- gmaven-test/.project 0.6 kB
- gmaven-test/.../org.eclipse.jdt.core.prefs 0.2 kB
- gmaven-test/.../org.maven.ide.eclipse.prefs 0.3 kB
- gmaven-test/pom.xml 2 kB
- gmaven-test/src/.../client/GMavenTest.java 0.7 kB
- gmaven-test/src/main/.../client/Service.java 0.3 kB
- gmaven-test/src/.../client/ServiceAsync.java 0.2 kB
- gmaven-test/src/.../client/ServiceDTO.java 0.5 kB
- gmaven-test/src/.../test/GMavenTest.gwt.xml 0.2 kB
- gmaven-test/src/.../public/GMavenTest.html 2 kB
- gmaven-test/src/.../server/ServiceImpl.java 0.4 kB
- gmaven-test/src/main/.../WEB-INF/web.xml 0.3 kB
- gmaven-test/test run.launch 1 kB
- gmaven-test/.../3D8C9ED7A7ACB57FC755C1283A84575C.gwt.rpc 0.2 kB
- gmaven-test/.../test.client.Service.rpc.log 3 kB
Activity
Maybe this isn't a bug, then, but I'm having the same issue. When I build my project with maven using the gwt-maven-plugin's compile and generateAsync goals, if there has been a change to serialized classes in my project that would require a change to the serialization policy file and/or files that reference it (the .gwt.rpc file), those changes are not reflected. I get the serialization policy not found error message, referencing a policy name that is not the name of the .gwt.rpc file packaged up.
Workaround: Run GWT Compile with the Google Eclipse Plugin on the project before packaging. This surprises me, though, because even when I do "mvn clean package" this still solves the problem.
Have you tried reproducing it? I have been hit by it until I moved to IsSerializable exclusively.
I have seen this again, with GWT 2.4.0 , Plugin version 2.4.0 and gwt-dispatch. While running in dev mode and throwing a Serializable exception, I get
Oct 18, 2011 12:56:32 AM com.google.appengine.tools.development.ApiProxyLocalImpl log INFO: javax.servlet.ServletContext log: dispatch: ERROR: The serialization policy file '/Admin/34D80D52F10FC1802495FB9AFCD6CD93.gwt.rpc' was not found; did you forget to include it in this deployment? Oct 18, 2011 12:56:32 AM com.google.appengine.tools.development.ApiProxyLocalImpl log INFO: javax.servlet.ServletContext log: dispatch: WARNING: Failed to get the SerializationPolicy '34D80D52F10FC1802495FB9AFCD6CD93' for module 'http://127.0.0.1:8080/Admin/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result. Oct 18, 2011 1:03:36 AM com.google.appengine.tools.development.ApiProxyLocalImpl log SEVERE: javax.servlet.ServletContext log: Exception while dispatching incoming RPC call com.google.gwt.user.client.rpc.SerializationException: Type 'net.customware.gwt.dispatch.shared.ServiceException' was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.For security purposes, this type will not be serialized.: instance = net.customware.gwt.dispatch.shared.ServiceException: blah. at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:619) at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:126) at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153) at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:539) at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:616) at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:390) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.__handle(ContextHandler.java:765) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351) 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.content(HttpConnection.java:938) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
It seems this is not due to gwt-maven-plugin.
Try to implements IsSerializable instead of Serializable in your ServiceDTO class, this should work.