Re: Can't serialize return result containing inner class??

2008-09-18 Thread Barry

Indeed, turning the inner class to static was just the thing. The
inner class was acting only as a bean anyway. And the more I think
about it, the more I realize that I should be creating inner classes
as static by default anyway ... perhaps this is how Java should have
been spec'd in the first place.

Thanks *very* much ... a very big deal for us.

On Sep 18, 8:14 am, Charlie Collins <[EMAIL PROTECTED]> wrote:
> I am not sure of the status of this, but yes, there is an issue
> related to that still 
> open:http://code.google.com/p/google-web-toolkit/issues/detail?id=811&q=in
>
> A non static inner class is probably a bit tricky (not impossible
> though) for a source code analyzer/compiler to deal with.  Try just
> making it a top level class and see if that solves it.  Or, if the
> situation warrants, make Device a static inner class, that should work
> too.
>
> On Sep 18, 4:19 am, Barry <[EMAIL PROTECTED]> wrote:
>
> > Hi, all ...
>
> > I have a GWT service that is trying to return a class
> > GetDeviceListResult. This class contains an inner class Device.
>
> > When the client tries to call the service, the GWT serializer is
> > invoked, and it fails to serialize the GetDeviceListResult class,
> > saying that the inner class cannot be serialized. (In the example
> > below, it's because of the presence of the xxx member.)
>
> > Are inner classes not serializable?? ... or am I just doing this
> > wrong??
>
> > My call is an Async call, if that matters.
>
> > Thanks!
>
> > --
>
> > The service has this declaration:
> >         public GetDeviceListResult getDeviceList();
>
> > The offending GetDeviceListResult class (containing the Device inner
> > class) is:
>
> > package org.paceproject.palms.browserproxy.client.messages;
> > import com.google.gwt.user.client.rpc.IsSerializable;
> > public class GetDeviceListResult implements IsSerializable {
> >         private class Device implements IsSerializable {
> >                 public Device() {       }
> >         }
> >         public Device xxx;
> >         public GetDeviceListResult() {}
>
> > }
>
> > The service itself is:
>
> > package org.paceproject.palms.browserproxy.server;
> > mport org.paceproject.palms.browserproxy.client.DeviceService;
> > import
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult;
> > import com.google.gwt.user.server.rpc.RemoteServiceServlet;
> > public class DeviceServiceImpl extends RemoteServiceServlet implements
> >                 DeviceService {
> >         private static final long serialVersionUID = 1L;
> >         public GetDeviceListResult getDeviceList() {
> >                 return new GetDeviceListResult();
> >         }
>
> > }
>
> > This is the log:
> > [DEBUG] Rebinding
> > org.paceproject.palms.browserproxy.client.DeviceService
> > [DEBUG] Invoking  > class='com.google.gwt.user.rebind.rpc.ServiceInterfaceProxyGenerator'/
>
> > [DEBUG] Generating client proxy for remote service interface
> > 'org.paceproject.palms.browserproxy.client.DeviceService'
> > [DEBUG] Analyzing
> > 'org.paceproject.palms.browserproxy.client.DeviceService' for
> > serializable types
> > [DEBUG] Analyzing methods:
> > [DEBUG] public abstract
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> > getDeviceList(java.lang.String studyID)
> > [DEBUG] Return type:
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> > [DEBUG]
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> > [DEBUG] Analyzing the fields of type
> > 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
> > that qualify for serialization
> > [DEBUG] public
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
> > xxx
> > [DEBUG]
> > org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
> > [ERROR] Type
> > 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device'
> > was not serializable and has no concrete serializable subtypes
> > [ERROR] Type
> > 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
> > was not serializable and has no concrete serializable subtypes
> > [ERROR] Deferred binding failed for
> > 'org.paceproject.palms.browserproxy.client.DeviceService'; expect
> > subsequent failures
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
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
-~--~~~~--~~--~--~---



Re: Can't serialize return result containing inner class??

2008-09-18 Thread Charlie Collins

I am not sure of the status of this, but yes, there is an issue
related to that still open: 
http://code.google.com/p/google-web-toolkit/issues/detail?id=811&q=inner%20class.

A non static inner class is probably a bit tricky (not impossible
though) for a source code analyzer/compiler to deal with.  Try just
making it a top level class and see if that solves it.  Or, if the
situation warrants, make Device a static inner class, that should work
too.

On Sep 18, 4:19 am, Barry <[EMAIL PROTECTED]> wrote:
> Hi, all ...
>
> I have a GWT service that is trying to return a class
> GetDeviceListResult. This class contains an inner class Device.
>
> When the client tries to call the service, the GWT serializer is
> invoked, and it fails to serialize the GetDeviceListResult class,
> saying that the inner class cannot be serialized. (In the example
> below, it's because of the presence of the xxx member.)
>
> Are inner classes not serializable?? ... or am I just doing this
> wrong??
>
> My call is an Async call, if that matters.
>
> Thanks!
>
> --
>
> The service has this declaration:
>         public GetDeviceListResult getDeviceList();
>
> The offending GetDeviceListResult class (containing the Device inner
> class) is:
>
> package org.paceproject.palms.browserproxy.client.messages;
> import com.google.gwt.user.client.rpc.IsSerializable;
> public class GetDeviceListResult implements IsSerializable {
>         private class Device implements IsSerializable {
>                 public Device() {       }
>         }
>         public Device xxx;
>         public GetDeviceListResult() {}
>
> }
>
> The service itself is:
>
> package org.paceproject.palms.browserproxy.server;
> mport org.paceproject.palms.browserproxy.client.DeviceService;
> import
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult;
> import com.google.gwt.user.server.rpc.RemoteServiceServlet;
> public class DeviceServiceImpl extends RemoteServiceServlet implements
>                 DeviceService {
>         private static final long serialVersionUID = 1L;
>         public GetDeviceListResult getDeviceList() {
>                 return new GetDeviceListResult();
>         }
>
> }
>
> This is the log:
> [DEBUG] Rebinding
> org.paceproject.palms.browserproxy.client.DeviceService
> [DEBUG] Invoking  class='com.google.gwt.user.rebind.rpc.ServiceInterfaceProxyGenerator'/
>
> [DEBUG] Generating client proxy for remote service interface
> 'org.paceproject.palms.browserproxy.client.DeviceService'
> [DEBUG] Analyzing
> 'org.paceproject.palms.browserproxy.client.DeviceService' for
> serializable types
> [DEBUG] Analyzing methods:
> [DEBUG] public abstract
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> getDeviceList(java.lang.String studyID)
> [DEBUG] Return type:
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> [DEBUG]
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
> [DEBUG] Analyzing the fields of type
> 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
> that qualify for serialization
> [DEBUG] public
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
> xxx
> [DEBUG]
> org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
> [ERROR] Type
> 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device'
> was not serializable and has no concrete serializable subtypes
> [ERROR] Type
> 'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
> was not serializable and has no concrete serializable subtypes
> [ERROR] Deferred binding failed for
> 'org.paceproject.palms.browserproxy.client.DeviceService'; expect
> subsequent failures
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
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
-~--~~~~--~~--~--~---



Can't serialize return result containing inner class??

2008-09-18 Thread Barry

Hi, all ...

I have a GWT service that is trying to return a class
GetDeviceListResult. This class contains an inner class Device.

When the client tries to call the service, the GWT serializer is
invoked, and it fails to serialize the GetDeviceListResult class,
saying that the inner class cannot be serialized. (In the example
below, it's because of the presence of the xxx member.)

Are inner classes not serializable?? ... or am I just doing this
wrong??

My call is an Async call, if that matters.

Thanks!

--

The service has this declaration:
public GetDeviceListResult getDeviceList();

The offending GetDeviceListResult class (containing the Device inner
class) is:

package org.paceproject.palms.browserproxy.client.messages;
import com.google.gwt.user.client.rpc.IsSerializable;
public class GetDeviceListResult implements IsSerializable {
private class Device implements IsSerializable {
public Device() {   }
}
public Device xxx;
public GetDeviceListResult() {}
}

The service itself is:

package org.paceproject.palms.browserproxy.server;
mport org.paceproject.palms.browserproxy.client.DeviceService;
import
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class DeviceServiceImpl extends RemoteServiceServlet implements
DeviceService {
private static final long serialVersionUID = 1L;
public GetDeviceListResult getDeviceList() {
return new GetDeviceListResult();
}
}

This is the log:
[DEBUG] Rebinding
org.paceproject.palms.browserproxy.client.DeviceService
[DEBUG] Invoking 
[DEBUG] Generating client proxy for remote service interface
'org.paceproject.palms.browserproxy.client.DeviceService'
[DEBUG] Analyzing
'org.paceproject.palms.browserproxy.client.DeviceService' for
serializable types
[DEBUG] Analyzing methods:
[DEBUG] public abstract
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
getDeviceList(java.lang.String studyID)
[DEBUG] Return type:
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
[DEBUG]
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult
[DEBUG] Analyzing the fields of type
'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
that qualify for serialization
[DEBUG] public
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
xxx
[DEBUG]
org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device
[ERROR] Type
'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult.Device'
was not serializable and has no concrete serializable subtypes
[ERROR] Type
'org.paceproject.palms.browserproxy.client.messages.GetDeviceListResult'
was not serializable and has no concrete serializable subtypes
[ERROR] Deferred binding failed for
'org.paceproject.palms.browserproxy.client.DeviceService'; expect
subsequent failures



--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
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
-~--~~~~--~~--~--~---