我创建了一个RESTful webservice,这个webservice使用了一个mysql数据库。这是在使用Netbeans IDE的方法之后完成的。
除了一件小事之外,一切正常。
有一个表被设置为'时间'类型(默认值为00:00:00)但由于某种原因,当我访问wadl时,我会看到:
<time>1970-01-01T17:00:00+01:00</time>
我不是一个非常优秀的Java程序员,但我在网络服务的来源中看到Netbeans做到了这一点:
public void setDate(Date time) {
this.time = time;
}
如何将其更改为时间值?我可以使用标准课吗?
[编辑]
我正在运行一个glassfish服务器,我在其中部署了一个Netbeans生成的war文件。
使用Netbeans和mysql生成RESTful Web服务的教程
(netbeans.org/kb/docs/websvc/rest.html#entities-and-services)
答案 0 :(得分:0)
在数据库中,时间值通常只是存储为忽略日期部分的长值,这导致当它转换为日期时,日期值是unix纪元值(即0)。
所以我不确定这是一个问题,只需将其转换回接收端的日期,你就会有一个正确设置时间的日期。
编辑: 我想你有一个转移对象,你定义这个“时间”参数?或者您使用休眠或类似对象作为其余xml生成器的输出?
如果是这样,您是否尝试过将数据类型从日期更改为时间?
另一种方法是将类型更改为String,并在setDate方法中使用SimpleDateFormat来获取所需的确切形式的字符串。
答案 1 :(得分:0)
RESTful Web服务公开的类型在类YourTableFacadeREST
中定义。尝试修改该类中相应方法的返回类型。
EDITED 问题是当暴露的对象更复杂并且您的日期只是该对象的“一部分”时,上述想法将不起作用。可能最好的解决方案是使用读取对象的代码来处理转换。
如果您的目标只是显示这些数据(例如,对于GET类型的请求),您可以尝试使用视图。我从未在视图上完成Jersey RESTful Web服务,但它应该适用于GET方面。您的视图应显示原始表,其中datetime字段已转换为日期。在这里看到在MySql中创建视图的语法: http://dev.mysql.com/doc/refman/5.0/en/create-view.html