I have a GWT app which runs pretty much flawlessly in Dev mode with GWT's embedded jetty server.
However, I need to move over to using an external jetty server (For various reasons). I followed the GWT documentation Compile & Debug for external server setup exactly.
My app runs, however 2/3 of the time on load I get a serialization exception similar to this (On the server side):
com.google.gwt.user.client.rpc.SerializationException: Type 'my.package.impl.ContentTypeImpl' 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 = my.package.impl.ContentTypeImpl@5e5edf72
I am sure that this particular class is serializable, and I have ensured that I compiled my application and moved the static assets into my external servers war directory. Like I said, it works about every third time I refresh the browser.
Any suggestions?
Thanks!
from: http://www.gwtproject.org/doc/latest/tutorial/RPC.html#serialize
A class is serializable if it meets these three requirements:
My guess is that you are using a separate war directory in your external server, have copied all of your static content over (including the *.gwt.rpc files) to that war directory, and then changed something about the serializable models that you are passing across your RPC calls. Whenever these models change the generated .gwt.rpc files will have changed. Your server would be using one variation of the serialization policies and your client java debugging would be using a different one.
I can think of two options:
Make sure to copy the .gwt.rpc files over to the server war directory. You could create a custom ant task to do this.
Configure your external web server to point to the same war directory that you use for internal GWT debugging. That way when GWT generates changes they are automatically in the right place.
Option #2 is the one I go with when dealing with large complex systems that require an external server.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With