You can not use Object in Vector<Object> for GWT client code. You may
try to use Vector<Serializable>


Jim
http://www.gwtorm.com - GWT ORM
http://code.google.com/p/dreamsource-orm/


On May 21, 6:05 am, Yulia <yuli...@gmail.com> wrote:
> Hello
>
> I have class StringValue which extends abstract class AttributeValue.
> I call some method on server side, which should return instance of
> this class. When the method tries to return value the folowing error
> happens:
>
> SEVERE: Exception while dispatching incoming RPC call
> com.google.gwt.user.client.rpc.SerializationException:
> java.lang.reflect.InvocationTargetException
>         at
> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali­zeWithCustomSerializer
> (ServerSerializationStreamWriter.java:686)
>         at
> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali­zeImpl
> (ServerSerializationStreamWriter.java:649)
>         at
> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali­ze
> (ServerSerializationStreamWriter.java:583)
>         at
> com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write­Object
> (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.seriali­zeValue
> (ServerSerializationStreamWriter.java:520)
>         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.netbeans.modules.web.monitor.server.MonitorFilter.doFilter
> (MonitorFilter.java:390)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
> (ApplicationFilterChain.java:235)
>         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:286)
>         at org.apache.coyote.http11.Http11Processor.process
> (Http11Processor.java:844)
>         at org.apache.coyote.http11.Http11Protocol
> $Http11ConnectionHandler.process(Http11Protocol.java:583)
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
> (JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.reflect.InvocationTargetException
>         at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown
> Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali­zeWithCustomSerializer
> (ServerSerializationStreamWriter.java:668)
>         ... 27 more
> Caused by: com.google.gwt.user.client.rpc.SerializationException: Type
> 'com.biosearch.client.database.attributeValues.StringValue' 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.
>         at
> com.google.gwt.user.server.rpc.impl.StandardSerializationPolicy.validateSer­ialize
> (StandardSerializationPolicy.java:83)
>         at
> com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.seriali­ze
> (ServerSerializationStreamWriter.java:581)
>         at
> com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.write­Object
> (AbstractSerializationStreamWriter.java:129)
>         at
> com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSeriali­zerBase.serialize
> (Collection_CustomFieldSerializerBase.java:43)
>         at
> com.google.gwt.user.client.rpc.core.java.util.Vector_CustomFieldSerializer.­serialize
> (Vector_CustomFieldSerializer.java:36)
>         ... 31 more
>
> Both classes implement Serializable and have default constructor. Here
> is the code:
>
> public abstract class AttributeValue implements Serializable {
>     private String datasource;
>     public AttributeValue() {
>     }
>     public abstract Object getValue();
>     public String getDatasource() {
>         return datasource;
>     }
>     public void setDatasource(String datasource) {
>         this.datasource = datasource;
>     }
>
> }
>
> public class StringValue extends AttributeValue{
>     private String value;
>     public StringValue() {
>         super();
>     }
>     public StringValue(String value, String datasource) {
>         setValue(value);
>         setDatasource(datasource);
>     }
>     public String getValue() {
>         return value;
>     }
>     public void setValue(String value) {
>         this.value = value;
>     }
>
> }
>
> //Method on server side in RemoteServiceServlet class:
> public Vector<Object> getInfo(int nodeId, int nodeTypeId) throws
> Exception {
>         //This method should return vector of different objects, by
> now it's only StringValue for testing
>         Vector<Object> res = new Vector<Object>();
>         res.add(new StringValue("test", "test"));
>         return res;
>
> }
>
> What can be wrong? Maybe I cannot use Vector<Object> as a return type
> (but it compiles fine and error is about StringValue)?
>
> Any help will be great appreciated. Thanks in advance.
--~--~---------~--~----~------------~-------~--~----~
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 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to