gpt4 book ai didi

java - 如何为 XMLGregorianCalendar 编写 GWT CustomSerializer?

转载 作者:太空宇宙 更新时间:2023-11-04 06:25:51 25 4
gpt4 key购买 nike

我需要一个通过 RPC 序列化 XMLGregorianCalendar 的解决方案。

到目前为止,我为 XMLGregorianCalendar 对象编写了一个自定义序列化程序,但要序列化的对象是 Calendar 类型的内部 Xerxes 实现 (com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl)。

所以我的序列化器严重失败,因为它没有被使用。

为内部对象编写序列化程序不是一个好主意,并且会在 Eclipse 中产生警告,表明该类受到限制(访问限制:由于所需库 C:\java\jre\lib\rt.jar 的限制,无法访问类型 XMLGregorianCalendarImpl)。

有人曾经成功地在客户端使用过带有 GWT 的 XMLGC 吗?我可以替换 gwt.xml 中的 XMLGC 类并用不同的东西替换它吗?

感谢任何帮助!

更新:

想告诉您到目前为止什么不起作用:

  • 添加了 Supersource 路径,并用一个更简单的类替换了 XMLGC 类,仅携带数据元素。

  • 为 XMLGC 添加了自定义序列化器类,以将 XMLGC 序列化到轻量级 super 源类。

  • 该方法在运行时失败,因为传输的对象不是 XMLGC,而是 com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl,位于 rt.jar 的密封包中。

  • 对 XMLGCImpl 重复相同步骤的方法对我来说失败了,也许是因为我太笨了,也许是因为密封包装阻碍了这个过程。

有人可以确认这种方法应该有效吗?或者该方法是否会因为 Impl 类而注定失败?也许有一个 GWT 注释/配置,我可以在其中告诉序列化器接受任何 XMLGC 扩展的 XMLGC 序列化器?

最佳答案

问题不在于 RPC 序列化。问题是 XMLGregorianCalendar 不是 emulated ,所以不能在客户端使用。通过 RPC 序列化它没有帮助。

有一个issue to add better javax.time support to GWT ,但是模拟这些日期和时间 API 非常复杂,因此仍在进行中。

目前,作为一种解决方法,我建议在 DTO 中使用 java.util.Date,并在服务器端使用映射层,将包含 XMLGregorianCalendar 的“服务器 POJO”转换为包含日期的“GWT DTO”。

此外,在谷歌搜索时,我发现 this class ,这是 Enunciate 的一部分图书馆。它可能对服务器端的 XMLGregorianCalendar <--> 日期映射有用。

关于java - 如何为 XMLGregorianCalendar 编写 GWT CustomSerializer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26803294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com