Hello Tom, thanks for your answer. I use Java Date class in my data transfer objects classes on the "client side" (GWT side) of the code, and I already tried IsSerializable instead of Serialisazable. iCal4J is an external library for iCalendar objcets @see (http:// wiki.modularity.net.au/ical4j/index.php?title=Main_Page), therefore I must use it on the "server side" of the code, no possibility for changing it. However, to avoid issues I use data transfer objects on the client side having "GWT compatible POJO design" like described in article "http://code.google.com/intl/de/webtoolkit/articles/ using_gwt_with_hibernate.html". The only package where I use iCal4J objects is in package "mydomain.server" which implements the iCal4J services. So, its still not clear to me why the SerializationException is thrown when I call the service.
Bernhard On 2 Aug., 20:12, Thomas Dvornik <[email protected]> wrote: > Hey Bernhard, > > Not having a default constructor would defiantly cause a problem. Why > don't you use java.util.Date? You could also create your own Date > class and just pull the information you need. > > Also, I would recommend using GWT's IsSerializable instead of > Serializable, and put all classes passed between the client and server > in the shared package. Although these aren't necessary, I think it > follow the "GWT standards." > > Tom > > On Aug 1, 8:14 am, bernhard <[email protected]> wrote: > > > Hallo all, > > > I am using GWT 2.0.4 and try to implement a service that handles with > > iCal4J calendar objects. > > (http://wiki.modularity.net.au/ical4j/index.php?title=Main_Page) > > However, when I invoke the RPC service a SerializationException is > > thrown: > > > com.google.gwt.user.client.rpc.SerializationException: Type > > 'net.fortuna.ical4j.model.DateTime' was not included in the set of > > types which can be serialized by this SerializationPolicy or its Class > > object could not be loaded. For security purposes, this type will not > > be serialized. > > > I already read the suggestion from article "http://code.google.com/ > > intl/de/webtoolkit/articles/using_gwt_with_hibernate.html" and made a > > CalendarDTO object for the transfer. > > (Additionally I read "tons" of post for the SerializationException > > problem, without finding a solution). > > > Here is my structure of the service: > > ------------------------------------------------------------ > > package mydomain.de.client > > /** > > * The client side stub for the RPC service. > > */ > > @RemoteServiceRelativePath("calendar") > > public interface CalendarService extends RemoteService { > > public CalendarDTO getCalendarEvent();} > > > /** > > * The async counterpart of <code>CalendarService</code>. > > */ > > public interface CalendarServiceAsync { > > void getCalendarEvent(AsyncCallback<CalendarDTO> callback);} > > > --------------------------------------------------------------- > > package mydomain.client.dto > > /* The data transfer object used on the client (GWT) side */ > > public class CalendarDTO implements Serializable { > > private static final long serialVersionUID = 1L; > > private Date date; > > private String name; > > private String uid; > > > public CalendarDTO() {}; > > > public CalendarDTO(Date date, String name, String uid) { > > this.date = date; > > this.name = name; > > this.uid = uid; > > > } > > ... > > setter and getter} > > > ----------------------------------------------------------------- > > package mydomain.domain > > /* The domain class for the calendar */ > > public class MyCalendar implements Serializable { > > private static final long serialVersionUID = 9054803484652745548L; > > private Date eventDate; > > private String eventName; > > private String uid; > > > public MyCalendar() {}; > > > public MyCalendar(CalendarDTO calendarDTO) { > > eventDate = calendarDTO.getDate(); > > eventName = calendarDTO.getName(); > > uid = calendarDTO.getUid(); > > } > > ... > > getter and setter > > ...} > > > --------------------------------------------------------------------- > > package mydomain.server > > /** > > * The server side implementation of the RPC service. > > */ > > //@SuppressWarnings("serial") > > public class CalendarServiceImpl extends RemoteServiceServlet > > implements > > CalendarService { > > private static final long serialVersionUID = -7306504057898287672L; > > ..... > > public CalendarDTO getCalendarEvent() { > > > MyCalendar myCalendar = new MyCalendar(); > > setMyCalendar(myCalendar); // Do iCal4J stuff.... > > CalendarDTO calendarDTO = new CalendarDTO(); > > calendarDTO.setDate(myCalendar.getEventDate()); > > calendarDTO.setName(myCalendar.getEventName()); > > calendarDTO.setUid(myCalendar.getUid()); > > return calendarDTO; > > } > > .... > > --------------------------------------------------------------------- > > For my understanding the server code should be decoupled by the Data > > Transfer Objects "CalendarDTO", but > > the serialization exception is still thrown. > > I already did a look in the implementation class of > > "net.fortuna.ical4j.model.DateTime" one of its superclass ("Iso8601") > > does not have a default constructor. > > Could that be the issue? > > Is there a workaround for this problem available? > > > Any suggestions are highly appreciated. > > > Thanks & regards > > > Bernhard -- 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.
