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