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.

Reply via email to