`
simen_net
  • 浏览: 307151 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

GWT(GXT)+OpenJPA使用RPC时Date类型出错的情况分析

 
阅读更多

先来一个完整的错误提示如下:

com.google.gwt.user.client.rpc.SerializationException: Type 'org.apache.openjpa.util.java$util$Date$proxy' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = Wed Sep 21 00:00:00 CST 2011

 

错误里面废话很多,大概就是有个"org.apache.openjpa.util.java$util$Date$proxy "我RPC不认识。我当时就奇怪了,我在POJO的时候用的是java.util.Date,没有使用这个什么奇怪的数据类型。请出Google大神貌似也说不清什么原因。

 

再说说我的做法:

我使用OpenJPA构建来一个@Entity

@Entity

@Table(name = "t_wj")

public class TWj implements java.io.Serializable {

  private static final long serialVersionUID = -3474120905033096760L;

  private Date wjBy7; // 备用7

  @Temporal(TemporalType.TIMESTAMP)
  @Column(name = "wj_by7", length = 19)
  public Date getWjBy7() {
    return wjBy7;
  }

  public void setWjBy7(Date wjBy7) {
    this.wjBy7 = wjBy7;
  }
  // 其中省略无数代码
}

 

我再构造了一个Model:

public class MWj {

  private Date wjBy7; // 备用7

  public Date getWjBy7() {
    return wjBy7;
  }

  public void setWjBy7(Date wjBy7) {
    this.wjBy7 = wjBy7;
  }
  // 其中省略无数代码
}

 

最后使用Spring的BeanUtils.copyProperties将两个类的参数合并

最后神奇的事情发生了,在@Temporal(TemporalType.TIMESTAMP)的指引下,OpenJPA将wjBy7转换成了"org.apache.openjpa.util.java$util$Date$proxy "如果你将MWj通过RPC传回很不幸,GWT会无情的拒绝你

 

怎办?转换吧:

setWjBy7(new Date(twj.getWjBy7().getTime()))

 

OK,万事大吉

 

分享到:
评论

相关推荐

    GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合

    GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合,也可以上新浪博客去看 http://blog.sina.com.cn/s/blog_687dfecb0100yrmf.html

    gwt + gxt jar包

    在【压缩包子文件的文件名称列表】中,"gwt+gxt"可能表示的是包含GWT和GXT库的JAR文件,例如GWT的gwt-user.jar、gwt-dev.jar以及GXT的gxt.jar、gxt-theme-neptune.jar等。这些JAR文件通常需要添加到项目的类路径中,...

    gwt+spring+hibernate

    标题 "gwt+spring+hibernate" 涉及的是一个使用Google Web Toolkit (GWT)、Spring框架和Hibernate ORM技术的集成示例。这是一个常见的Web应用开发组合,用于构建高效、可扩展且功能丰富的Java web应用程序。下面将...

    ext gwt gxt初学教程

    ### ExtGWT、GWT与GXT初学教程:打造企业级富客户端Web应用 #### 构建初识:ExtGWT与GWT的协同工作 ExtGWT,作为GWT(Google Web Toolkit)的有力补充,旨在为Java开发者提供更为丰富、功能全面的组件库,从而构建...

    浪曦原创]GXT系列+第1讲+GXT_GWT的安装.

    浪曦原创]GXT系列+第1讲+GXT_GWT的安装.

    gwt gxt demo

    总的来说,"gwt gxt demo" 项目可能涵盖了GWT和GXT的许多核心特性,如组件库的使用、Java到JavaScript的编译、异步RPC通信以及客户端-服务器的数据交换。这个项目为学习和理解GWT和GXT的结合使用提供了一个实战平台...

    gxt、gwt与spring结合使用

    GXT同样可以利用GWT的RPC机制,或者使用RESTful API与Spring服务进行交互。 3. **数据持久化**:Spring提供了Hibernate、JPA等多种ORM(对象关系映射)工具,方便地与数据库进行交互。在GXT或GWT应用中,可以通过...

    gwt2.0.4+eclipse3.6创建web application project项目后无法运行的原因分析

    标题 "Gwt2.0.4+eclipse3.6创建web application project项目后无法运行的原因分析" 涉及的问题主要集中在Google Web Toolkit (GWT) 的版本2.0.4与Eclipse IDE 3.6之间的兼容性问题以及在创建Web Application Project...

    gxt-2.2.4 EXT GWT

    gxt-2.2.4 EXT GWT Note : Ext GWT 2.X requires GWT 1.7+ or GWT 2.0+ (any build ending in "-gwt2.zip").

    GWT+EXT+STRUTS2+Eclipse完整范例.rar

    标题 "GWT+EXT+STRUTS2+Eclipse完整范例.rar" 提示我们这是一个包含一个集成开发环境Eclipse的项目,该项目集成了Google Web Toolkit (GWT), EXT JS 和Struts2框架。描述 "整合 GWT EXT STRUTS2 Eclipse 范例" 明确...

    gxt-2.1.1-gwt2 最新的

    gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2gxt-2.1.1-gwt2

    gwt , gxt文件上传

    GWT(Google Web Toolkit)和GXT(Sencha GXT)是两个在Web开发中用于构建富互联网应用程序(RIA)的框架。GWT是Google推出的一款开源工具,它允许开发者使用Java语言编写客户端代码,然后编译成优化的JavaScript,...

    EXT-GWT(GXT) 2.2.4 JAVA API DOC chm 版

    GXT是EXT-GWT的简称,它提供了丰富的用户界面组件,允许开发者用Java代码来构建复杂的、桌面级的Web应用。EXT-GWT 2.2.4是该框架的一个版本,它包含了对Java API的详细文档,方便开发者查阅和学习。 此CHM版的API...

    搭建简单的EXT-GWT(GXT)的开发环境

    EXT-GWT(GXT)是一种基于Google Web Toolkit (GWT)的开源JavaScript库,用于构建富客户端的Web应用程序。GXT提供了丰富的用户界面组件和样式,使得开发者能够创建出类似于桌面应用的用户体验。本文将详细介绍如何...

    搭建简单的EXT-GWT(GXT)的开发环境(四)ext-gwt(gxt)结合google map第三版开发

    EXT-GWT(GXT)是Sencha公司推出的一款基于Google Web Toolkit(GWT)的开源JavaScript库,用于构建富客户端的Web应用。本教程将详细介绍如何搭建EXT-GWT(GXT)的开发环境,并结合Google Maps API第三版进行集成...

    GWT-RPC-1.pdf

    根据给定文件的信息,我们可以深入探讨GWT-RPC(Google Web Toolkit Remote Procedure Call)的核心概念、开发流程以及在不同模式下的测试方法。 ### GWT-RPC:大想法 GWT-RPC提供了一种机制,允许客户端...

    smartgwt + spring + hibernate

    SmartGWT + Spring + Hibernate 是一个常见的企业级应用开发组合,它们各自在Web应用程序开发中扮演着重要角色。SmartGWT是基于GWT(Google Web Toolkit)的一个强大的UI库,提供丰富的用户界面组件和高性能的...

    搭建简单的EXT-GWT(GXT)的开发环境(三)gxt结合spring和hibernate进行数据操作

    EXT-GWT(GXT)是一种基于Google Web Toolkit (GWT) 的高级用户界面库,它提供了丰富的组件和样式,使得开发者能够构建出复杂的、企业级的Web应用。本篇文章将聚焦于如何在EXT-GWT中整合Spring框架和Hibernate ORM,...

    GWT RPC详细例子:代码加文档说明

    在这个“GWT RPC详细例子:代码加文档说明”的资源中,我们可以深入学习GWT RPC的使用方法。 首先,环境搭建是开始GWT开发的第一步。你需要安装Java Development Kit (JDK),确保版本符合GWT的要求。接着,下载并...

Global site tag (gtag.js) - Google Analytics