2011-09-20 42 views
0

我已經創建了一個REST風格的web服務,並且此webservice使用了一個mysql數據庫。這是在使用Netbeans IDE的指導下完成的。REST風格的Web服務時間值問題

除了一件小事外,所有工作都很好。

有一個被設置爲「時間」類型(默認值00:00:00)表,但由於某種原因,當我訪問WADL我能看到:

<time>1970-01-01T17:00:00+01:00</time> 

我不是

public void setDate(Date time) { 
    this.time = time; 
} 

如何改變這只是時間值:一個很好的Java程序員,但我在Netbeans中取得這個web服務的源看到?有我可以使用的標準課程嗎?

[編輯]

我正在那裏我部署一個NetBeans產生戰爭文件GlassFish服務器。

該教程使用NetBeans和MySQL

(netbeans.org/kb/docs/websvc/rest.html#entities-and-services)

回答

0

在數據庫以生成RESTful Web服務,該時間值通常只是存儲爲一個忽略日期部分的長整型值,導致在將其轉換爲日期時,日期值是unix時期值(即0)。

所以我不確定這是一個問題,只是將其轉換回接收端的日期,並且您將有一個正確設置時間的日期。

編輯: 我想你有一個傳遞對象的某種類型,你定義這個「時間」參數?還是你使用休眠或類似的對象作爲你的rest xml生成器的輸出?

如果是這樣,你是否嘗試過將數據類型從日期改爲時間?

另一種方法是將類型更改爲字符串,並在setDate方法中使用SimpleDateFormat以所需的確切形式獲取字符串。

+0

聽起來不錯,但我只是想有一個時間值而不是日期。 – Metalmini

+0

你用哪個api來生成其餘的xml? – Mathias

+0

我編輯我的答案與一些更多的建議 – Mathias

0

REST風格的Web服務公開的類型在類YourTableFacadeREST中定義。嘗試修改該類中相應方法的返回類型。

EDITED 問題是,當暴露的對象更復雜,並且您的日期只是該對象的「一部分」時,上述想法將不起作用。可能最好的解決方案是通過讀取對象的代碼來處理轉換。

如果您的目標只是顯示這些數據(即對於GET類型的請求),您可以嘗試一個視圖。我從來沒有在視圖上完成Jersey RESTful Web服務,但它應該適用於GET方面。您的視圖應該顯示原始表格,並將日期時間字段轉換爲日期。在這裏看到在MySql中創建視圖的語法: http://dev.mysql.com/doc/refman/5.0/en/create-view.html

+0

感謝您的評論。我會怎麼做?因爲我只是不想在有人請求web服務時顯示日期格式。只是時間。 (這使得創建請求更容易) – Metalmini