【发布时间】:2013-04-18 23:04:36
【问题描述】:
我正在尝试从我的 mysql 数据库返回一个 arrayList 以在 GWT cellList 中使用,但我遇到了序列化问题。
类型 'com.cbs.ioma.client.Order' 未包含在集合中 可由此 SerializationPolicy 或其类序列化的类型 无法加载对象。出于安全目的,此类型不会 被序列化。:instance = Order [orderNumber=1001, orderer=test, 汇编程序=1,日期完成=1969-12-31,提交日期=1969-12-31, notes=rer, isComplete=false, type=erer]
我有一个班级订单,但是当我尝试将其更改为
public class Order implements java.io.Serializable
程序崩溃并且没有显示错误消息。我对 GWT 内部的序列化知之甚少,那么我将如何序列化一个类以在 GWT 中使用?我相信我在 service 和 serviceAync 类中有正确的函数名称。谢谢。
编辑:我将在这里添加更多内容。我尝试更改订单类以实现 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.AbstractSafeHtmlCell.render(AbstractSafeHtmlCell.java:80) 在 com.google.gwt.user.cellview.client.CellList.renderRowValues(CellList.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.MethodAdaptor.invoke(MethodAdaptor.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(Unknown Source)
我不确定它为什么要将订单强制转换为字符串。我觉得我在这里缺少关于序列化的一些基本知识,有人能指出我正确的方向吗?
【问题讨论】:
-
你有 .gwt.xml 文件@com/cbs/ioma/ 文件夹吗?是否与 com.cbs.ioma.client.Order 的 .java 文件一起包含在您的 jar 中?
-
如果您指的是 WAR 文件,我在 WAR 文件中有 xml 文件。我需要第二个吗?我的 order.java 在 com.cbs.ioma.client
标签: java mysql gwt serializable