2010-04-23 46 views
0

我,希望有人也許過這種情況太來這裏問這個......我已經發布這在SmartGWT的論壇:瘋狂SmartGWT + GWT的情況...實例化ListGridRecord錯誤?

我有試圖實例我的服務器上ListGridRecord對象時的問題側。我在客戶端使用ListGrid,我想使用GWT的RPC傳回ListGridRecord對象的數組來填充網格。我知道SmartGWT被設計爲鏈接到一個數據源,但我希望完全控制何時填充網格,這不應該像它做的那樣是一場噩夢。

我搜索了高和低,並找不到任何人抱怨同樣的事情。然而,下面列出的例外(在我的搜索結果中)已經成爲可能的內存錯誤 - 增加內存(-Xmx512m參數)顯然已經解決了這個問題。然而,它並沒有理清我的意思。

如果任何人可以擺脫這一點,我將不勝感激!

這裏是我的詳細信息:

在Ubuntu 9.04(Jaunty中)和GWT 2.0.3使用Eclipse開發伽利略,我建立使用與GWT 2.0.3版本捆綁在一起的webAppCreator最初的GWT項目,並導入項目如GWT入門頁面中所述(因爲使用GWT Eclipse插件在嘗試連接數據庫時引發更多惡夢 - 顯然這是由於使用Google App Engine並關閉它,因爲所有帖子建議的原因都是這樣ClassNotFound異常)。

導致錯誤的代碼行是從字面上:

ListGridRecord a = new ListGridRecord(); 

我得到的錯誤是:提前

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) 

謝謝!

Xandel

回答

2

我找到了答案/解決方案here

底線是,你不能實例化一個記錄或ListGridRecord對象在服務器端,因爲它直接關係到JavaScript和意味着只有客戶端...

希望這有助於有人!

1

一般而言,您可以說屬於SmartGWT JAR的所有內容都不應該在服務器上使用。 避免誤操作可以創建三個項目及其類別分成 1.客戶端 2.服務接口 3.服務器端

但它可能不值得冒這個險,我想你知道如何尋找的下次發生這種情況時:-)

+0

的確我會!這讓我絕對瘋了! :)我現在非常小心,我在哪裏編碼什麼...:P – Xandel 2010-04-29 17:19:54