Sending a an object extending a widget implementing IsSerializable via rpc call

2 views
Skip to first unread message

hitesh

unread,
Jun 19, 2006, 2:58:29 PM6/19/06
to Google Web Toolkit
Is this possible?
I have defined a claas as below:
public class STable extends FlexTable implements IsSerializable{
/**
* default constructor
* Constructor STable
*/
public STable(){

}

}

When I try to send an object of this class via RPC call I get the
following error on server side:
00:17:49,297 ERROR [[/ring]] Exception while dispatching incoming RPC
call
java.lang.ExceptionInInitializerError
at
com.google.gwt.user.client.ui.HTMLTable.<init>(HTMLTable.java:284)
at
com.google.gwt.user.client.ui.FlexTable.<init>(FlexTable.java:91)
at
com.anduril.gwt.client.serialWidgets.STable.<init>(STable.java:21)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at
java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at
com.google.gwt.user.server.rpc.ServerSerializationStream.deserialize(ServerSerializationStream.java:518)
at
com.google.gwt.user.server.rpc.ServerSerializationStream.readObject(ServerSerializationStream.java:443)
at
com.google.gwt.user.server.rpc.ServerSerializationStream.deserializeValue(ServerSerializationStream.java:411)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:290)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:186)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:163)
at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:723)
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:663)
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:394)
at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:358)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException: GWT has not been properly
initialized; if you are running a unit test, check that your test case
extends GWTTestCase
at com.google.gwt.core.client.GWT.create(GWT.java:91)
at com.google.gwt.user.client.DOM.<clinit>(DOM.java:38)
... 43 more

Any pointers?

Jeff Bolle

unread,
Jun 19, 2006, 3:11:53 PM6/19/06
to Google Web Toolkit
As one of the Google guys pointed out in another thread, it is best to
leave all of your widgets in the client and send only the data
necessary to create the widget from the server via RPC. The server
shouldn't be sending full widgets to the client.

You might want to try putting the STable object in the client and
sending a 2 dimensional arraylist or whatever your collection of choice
is to the client via rpc to fill in the table. Good luck.

Jeff

Reply all
Reply to author
Forward
0 new messages