Hi,

I try your suggestion but the same problem. This seems to happend only in
hosted mode. I'm using windows GWT 1.5.3 .

On Wed, Mar 18, 2009 at 7:15 PM, Vitali Lovich <[email protected]> wrote:

> I think I see it.  List is not generally serializable.  The recommendation
> I recall reading somewhere is to try to use super-classes as infrequently as
> possible because it makes the compiler's job more difficult - also, in this
> particular case, the GWT compiler is unable to determine the type to
> serialize to.
>
> Try:
>
> private Map<DayHourCoordenate,ArrayList<Appointment>> mapData = new
> HashMap<DayHourCoordenate,ArrayList<Appointment>>();
>
> or even more preferable, change mapData to a HashMap as well.
>
>
> On Wed, Mar 18, 2009 at 6:05 PM, Vitali Lovich <[email protected]> wrote:
>
>> That depends on the version of GWT he's using.  As of 1.5 (or 1.4 - can't
>> recall the exact version), Serializable is a synonym for IsSerializable
>>
>>
>> On Wed, Mar 18, 2009 at 5:15 PM, George Holler <[email protected]>wrote:
>>
>>>
>>>
>>> The class WeeklyAppointmentData does not appear to implement
>>> IsSerializable. That's in the first line of the error stack trace.
>>>
>>> G
>>>
>>> --- On Wed, 3/18/09, Alejandro D. Garin <[email protected]> wrote:
>>>
>>> > From: Alejandro D. Garin <[email protected]>
>>> > Subject: SerializationException when serialize a HashMap over RPC
>>> > To: [email protected]
>>> > Date: Wednesday, March 18, 2009, 5:13 PM
>>> > Hello,
>>> >
>>> > I can't serialize a HashMap and I don't understand
>>> > why. Could you help me
>>> > please?
>>> > If I remove the following hashMap the RPC work just fine:
>>> >
>>> > private
>>> > Map<DayHourCoordenate,List<Appointment>> mapData
>>> > = new
>>> > HashMap<DayHourCoordenate,List<Appointment>>();
>>> >
>>> > *Tomcat error log:*
>>> >
>>> > com.google.gwt.user.client.rpc.SerializationException: Type
>>> > 'com.tasktimer.web.gwt.domain.WeeklyAppointmentData'
>>> > 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.
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy.validateSerialize(LegacySerializationPolicy.java:140)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:591)
>>> >     at
>>> >
>>> com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:129)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:146)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:530)
>>> >     at
>>> > com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:573)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:441)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:529)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
>>> >     at
>>> >
>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
>>> >     at
>>> > javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>>> >     at
>>> > javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>>> >     at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>> >     at
>>> >
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>> >     at
>>> >
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>> >     at
>>> >
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>> >     at
>>> >
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>> >     at
>>> >
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>> >     at
>>> >
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>> >     at
>>> >
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>>> >     at
>>> >
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>> >     at
>>> >
>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
>>> >     at
>>> > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>> >     at java.lang.Thread.run(Unknown Source)
>>> >
>>> > *The demo clases:*
>>> >
>>> > public class SimpleFacadeImpl extends RemoteServiceServlet
>>> > implements
>>> > SimpleFacade {
>>> >
>>> >   private static final long serialVersionUID =
>>> > 1164908101444531503L;
>>> >
>>> >   public SimpleFacadeImpl() {
>>> >
>>> >   }
>>> >   @Override
>>> >   public WeeklyAppointmentData getWeeklyData() {
>>> >     WeeklyAppointmentData data = new
>>> > WeeklyAppointmentData();
>>> >     DayHourCoordenate coordenate = new
>>> > DayHourCoordenate(11,10);
>>> >     data.add(coordenate, new Appointment());
>>> >     return data;
>>> >   }
>>> > }
>>> >
>>> > @RemoteServiceRelativePath("/simpleFacade.do")
>>> > public interface SimpleFacade extends RemoteService {
>>> >
>>> >   public WeeklyAppointmentData getWeeklyData();
>>> > }
>>> >
>>> > public class WeeklyAppointmentData implements Serializable
>>> > {
>>> >
>>> >   private static final long serialVersionUID =
>>> > 4291039636290439374L;
>>> >   private
>>> > Map<DayHourCoordenate,List<Appointment>> mapData
>>> > = new
>>> > HashMap<DayHourCoordenate,List<Appointment>>();
>>> >
>>> >   public WeeklyAppointmentData() {
>>> >
>>> >   }
>>> >   public void add(DayHourCoordenate coordenate, Appointment
>>> > appointment) {
>>> >
>>> >     List<Appointment> list = mapData.get(coordenate);
>>> >     if( list == null) {
>>> >       list = new ArrayList<Appointment>();
>>> >       mapData.put(coordenate, list);
>>> >     }
>>> >     list.add(appointment);
>>> >   }
>>> >   public  List<Appointment> get(DayHourCoordenate
>>> > coordenate) {
>>> >     return mapData.get(coordenate);
>>> >   }
>>> > }
>>> >
>>> > public class DayHourCoordenate implements Serializable {
>>> >
>>> >   private static final long serialVersionUID =
>>> > 217370389812685596L;
>>> >   private int day = 0;
>>> >   private int hour = 0;
>>> >
>>> >   public DayHourCoordenate() {
>>> >
>>> >   }
>>> >   public DayHourCoordenate(int day, int hour) {
>>> >     this.day = day;
>>> >     this.hour = hour;
>>> >   }
>>> >   public int getDay() {
>>> >     return day;
>>> >   }
>>> >   public void setDay(int day) {
>>> >     this.day = day;
>>> >   }
>>> >   public int getHour() {
>>> >     return hour;
>>> >   }
>>> >   public void setHour(int hour) {
>>> >     this.hour = hour;
>>> >   }
>>> >   @Override
>>> >   public int hashCode() {
>>> >     final int prime = 31;
>>> >     int result = 1;
>>> >     result = prime * result + day;
>>> >     result = prime * result + hour;
>>> >     return result;
>>> >   }
>>> >   @Override
>>> >   public boolean equals(Object obj) {
>>> >     if (this == obj)
>>> >       return true;
>>> >     if (obj == null)
>>> >       return false;
>>> >     if (!(obj instanceof DayHourCoordenate))
>>> >       return false;
>>> >     DayHourCoordenate other = (DayHourCoordenate) obj;
>>> >     if (day != other.day)
>>> >       return false;
>>> >     if (hour != other.hour)
>>> >       return false;
>>> >     return true;
>>> >   }
>>> > }
>>> >
>>> >
>>>
>>>
>>>
>>>
>>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to