Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT对象序列化_Java_Mysql_Gwt_Serializable - Fatal编程技术网

Java GWT对象序列化

Java GWT对象序列化,java,mysql,gwt,serializable,Java,Mysql,Gwt,Serializable,我试图从mysql数据库返回arrayList以用于GWT cellList,但遇到了序列化问题 类型“com.cbs.ioma.client.Order”未包含在 可由此SerializationPolicy或其类序列化的类型 无法加载对象。出于安全目的,此类型不会 要序列化:instance=Order[orderNumber=1001,Order=test, 汇编程序=1,完成日期=1969-12-31,提交日期=1969-12-31, notes=rer,isComplete=false

我试图从mysql数据库返回arrayList以用于GWT cellList,但遇到了序列化问题

类型“com.cbs.ioma.client.Order”未包含在 可由此SerializationPolicy或其类序列化的类型 无法加载对象。出于安全目的,此类型不会 要序列化:instance=Order[orderNumber=1001,Order=test, 汇编程序=1,完成日期=1969-12-31,提交日期=1969-12-31, notes=rer,isComplete=false,type=erer]

我有一个课堂指令,但当我尝试将其更改为

公共类顺序实现java.io.Serializable

程序崩溃,不显示错误消息。我对GWT内部的序列化了解不多,所以如何序列化一个类以在GWT中使用呢?我相信在service和serviceAync类中有正确的函数名。谢谢

编辑:我将在这里添加更多内容。我尝试更改order类以实现isSerializable,然后出现此错误

12:55:49.793[错误][ioma]未捕获异常已转义

java.lang.ClassCastException:com.cbs.ioma.client.Order无法强制转换 到java.lang.String 在com.google.gwt.text.shared.SimpleSafeHtmlRenderer.render上(SimpleSafeHtmlRenderer.java:1) 位于com.google.gwt.cell.client.AbstractSafeThmlCell.render(AbstractSafeThmlCell.java:80) 位于com.google.gwt.user.cellview.client.cellllist.renderRowValues(cellllist.java:527) 位于com.google.gwt.user.cellview.client.AbstractHasData$View.renderRowValues(AbstractHasData.java:337) 位于com.google.gwt.user.cellview.client.AbstractHasData$View.replaceAllChildren(AbstractHasData.java:239) 位于com.google.gwt.user.cellview.client.HasDataPresenter.resolvePendingState(HasDataPresenter.java:1351) 位于com.google.gwt.user.cellview.client.HasDataPresenter.access$3(HasDataPresenter.java:1062) 位于com.google.gwt.user.cellview.client.HasDataPresenter$2.execute(HasDataPresenter.java:984) 在com.google.gwt.core.client.impl.SchedulerImpl$Task$.executeScheduled$(SchedulerImpl.java:50) 位于com.google.gwt.core.client.impl.SchedulerImpl.runScheduledTasks(SchedulerImpl.java:228) 在com.google.gwt.core.client.impl.SchedulerImpl.flushFinallyCommands上(SchedulerImpl.java:327) 位于com.google.gwt.core.client.impl.impl.exit(impl.java:266) 位于com.google.gwt.core.client.impl.impl.entry0(impl.java:257) 在sun.reflect.GeneratedMethodAccessor24.invoke处(未知源) 在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源) 位于java.lang.reflect.Method.invoke(未知源) 位于com.google.gwt.dev.shell.MethodAdapter.invoke(methodAdapter.java:103) 位于com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71) 位于com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172) 位于com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293) 位于com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547) 在com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364) 位于java.lang.Thread.run(未知源)


我不知道它为什么要对字符串下命令。我觉得这里缺少了一些关于序列化的基本内容,有人能给我指出正确的方向吗。

尝试实现而不是可序列化。但一般来说,您的代码应该可以工作。此错误有时会发生(在调试期间),但在大多数情况下,它在重新编译后工作。

为了允许使用
GWT-RPC
将数据类型从客户端传输到服务器,您需要通过实现
IsSerializable
serializable
接口将它们标记为可序列化。您还必须确保类字段(final/transient字段除外,它根本不会被序列化)的可序列化性以及存在默认的零参数构造函数(或者根本没有)

编辑:最终字段的序列化实际上正在进行中

如果由于某种原因无法满足这些要求,则需要使用填充了对象数据的
DTO
s,以便将它们传输到客户机/服务器或从客户机/服务器传输出去。或者您可以尝试为该类实现自己的


如果需要,请查看和。并清除war目录中的所有*.gwt.rpc文件,以强制重新创建序列化策略。

是否有.gwt.xml文件@com/cbs/ioma/folder?您的jar中是否包括com.cbs.ioma.client.Order的.java文件?如果您所指的是WAR文件,我将xml文件放在WAR文件中。我需要第二个吗?my order.java在com.cbs.ioma.clientYes中。您应该实现gwt rpc的isSerializable,而不是java serializable。