Sla*_*ast 7 java serialization web-services date
我通过Web服务传递一些对象,其中一些包含java.sql.Date.因为Date没有空构造函数,所以它不希望序列化.
问题的第一部分很简单:在客户端和服务之间传递日期的最佳方法是什么?
第二部分有点棘手:一旦我决定如何传递日期,我显然可以声明日期瞬态并使一些包装类将日期作为字符串或其他方式传递,但如何将相同的解决方案尽可能透明地应用于包含Date的几个类?
(我有一种预感,DynamicProxy可能是一个解决方案,但在Sun的网站上阅读文档并不是很有帮助,所以如果它确实是朝这个方向发展的话,那么将会有一些澄清)
编辑:我问了错误的问题,对不起(我和同事之间的一些误解实际上是一个问题).由于反序列化而出现问题.因此,一旦我有xml格式的日期,它会尝试将自身反序列化为GregorianCalendar.问题的其他部分仍然存在:接收某些东西(长时间戳或GregorianCalendar)并将其转换为sql日期的最佳方式是什么,而不为10个不同的类制作10个不同的包装器.我正在使用NetBeans代码和wsdl生成.
如前所述,序列化由Date.getTime()返回的long将起作用.但是,您应该注意,如果您的服务器位于客户端以外的其他时区,则您在另一侧重建的日期将会有所不同.如果您想要重建完全相同的日期对象,您还需要发送您的时区(TimeZone.getID())并使用它来重建另一侧的日期.
java.sql.Date 扩展 java.util.Date
只需使用 getTime() 即可从中获取 long 值。可以对其进行序列化,并在另一端根据它构造一个新的 java.sql.Date(long) 或新的 java.util.Date(long) 。
| 归档时间: |
|
| 查看次数: |
21097 次 |
| 最近记录: |