2010-04-23 9 views
0

Je demande ceci dans l'espoir que quelqu'un est venu peut-être dans cette situation aussi ... J'ai posté ce sur le forum SmartGWT:Situation Insane SmartGWT + GWT ... Erreur lors de l'instanciation de ListGridRecord?

J'ai un problème lorsque vous essayez d'instancier un objet ListGridRecord sur mon serveur côté. J'utilise le ListGrid du côté client, je veux utiliser le RPC de GWT pour passer en arrière un tableau d'objets ListGridRecord pour peupler la grille avec. Je sais que SmartGWT est conçu pour être relié à une source de données, mais je veux un contrôle total lorsque je remplis la grille et cela ne devrait pas être un cauchemar autant que faire.

J'ai cherché haut et bas et ne trouve personne qui se plaint de la même chose. L'exception cependant (énumérée ci-dessous) est apparue (dans mes résultats de recherche) comme une erreur de mémoire possible - où l'augmentation de la mémoire (argument -Xmx512m) a apparemment résolu le problème. Il n'a pas, cependant, trier le mien.

Si quelqu'un peut jeter une lumière sur ce que je l'apprécierais grandement!

Voici mes coordonnées:

en développement utilisant Eclipse Galileo sur Ubuntu 9.04 (Jaunty) et GWT 2.0.3, je construit le projet GWT initial à l'aide du webAppCreator livré avec la version 2.0.3 GWT et importé le projet dans Eclipse comme décrit sur la page de démarrage de GWT (car l'utilisation du plugin GWT Eclipse causait encore plus de cauchemars en essayant de se connecter à une base de données - ceci est apparemment dû à l'utilisation de Google App Engine Exceptions ClassNotFound).

La ligne qui provoque l'erreur est littéralement:

ListGridRecord a = new ListGridRecord(); 

L'erreur que je reçois est la suivante:

00:00:25.916 [WARN] Exception while dispatching incoming RPC call 
com.google.gwt.user.server.rpc.UnexpectedException : Service method 'public abstract java.lang.String za.co.company.product.client.service.EmployeeService.getAllEmployeeAsListGridRecord()' threw an unexpected exception: java.lang.UnsatisfiedLinkError: com.smartgwt.client.util.LogUtil.setJSNIErrorHandler()V 
at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378) 
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224) 
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java :62) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:324) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) Caused by: java.lang.UnsatisfiedLinkError: com.smartgwt.client.util.LogUtil.setJSNIErrorHandl er()V 
at com.smartgwt.client.util.LogUtil.setJSNIErrorHandler(Native Method) 
at com.smartgwt.client.core.JsObject.<clinit>(JsObject.java:30) 
at za.co.company.product.server.service.EmployeeServiceImpl.getAllEmployeeAsListGridRecord(EmployeeServ iceImpl.java:83) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:597) 
at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:562) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:188) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224) 
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java :62) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:324) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 

Merci à l'avance!

Xandel

Répondre

2

J'ai trouvé la réponse/solution here.

Bottom line est que vous ne pouvez pas instancier un enregistrement ou un objet ListGridRecord sur le côté serveur car il est directement lié à JavaScript et conçu pour que le côté client ...

Hope this helps quelqu'un!

1

En général, vous pouvez dire que tout ce qui appartient au JAR SmartGWT ne doit jamais être utilisé sur le serveur. Pour éviter une mauvaise utilisation, vous pouvez créer trois projets et de diviser les classes en 1. côté client 2. interfaces de service 3. côté serveur

mais il est sans doute pas la peine de les tracas, je suppose que vous savez ce qu'il faut la la prochaine fois que cela arrive :-)

+0

En effet, je le ferai! Cela me rendait complètement fou! :) Je suis maintenant très prudent avec où je code ce que ...: P – Xandel

Questions connexes