推 Killercat:沒做過restful的話 真心建議從servlet做起吧 07/21 17:07
→ Killercat:Jersey根Restlet都滿好用的就是 07/21 17:08
→ Killercat:但是servlet不是IOC 會強迫你搞懂一些東西 07/21 17:08
K大 目前那個RESTful web service是已經完成的
我現在要做的只是在我的web service透過http去get data, post data這樣~
→ qrtt1:學習的情況由 servlet 做起,要寫產品就用些可靠的 07/21 17:45
→ qrtt1:framework 或 library 唄 :P 07/21 17:45
Q大 目前是在找有哪些方案可以比較有效率的做這一塊XD
推 yyc1217:spring有RestTemplate 可以參考看看~ 07/21 18:58
多謝Y大推薦 剛剛是在看Jersey的client API
再佐以json lib來處理 POJO to json/json to POJO mapping
很需要這個東西 因為restful get到的json還是得轉成自己系統的data格式
自己系統的data還是得轉成json才有辦法post出去
如果可以POJO跟json自動轉換那就比較美妙一點了~
可是Jersey好像就是搭配MOXy或者jackson或者Jettisonc或者Json-P
挑了jackson 可是還是搞不太定在.request那邊的語法..
不太清楚要怎麼把POJO轉成json post出去或者json get到後轉回POJO..
剛剛看了一下RestTemplate 相關網路教學文好像相對少了些
不過看官網doc 語法好像比較簡潔易懂些
不過還是不太懂 get那邊他是回傳一個Event[]
所以他是將json轉成event type array?
post那邊看起來應該也是透過jackson將POJO轉成json, 然後post
另外一個大問題是POJO中的類別 例如
http://www.journaldev.com/?p=2552 這個範例中的employee.java
@JsonSerialize(using=DateSerializer.class)
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
他透過@JsonSerialize來將Date轉成json
那如果是Map呢? 因為我的會像是 order.java
大概會有 int orderId, String buyer 另外一個 Map detail
detail.put("蘋果", 1000); detail.put("香蕉", 500)
所以json會大概長這樣
{
"orderId" : "10023",
"buyer" : "小明",
"detail" : { "蘋果" : 1000, "香蕉" : 500}
}
※ 編輯: JohnnyDell (123.194.238.68), 07/21/2014 21:11:25
※ 編輯: JohnnyDell (123.194.238.68), 07/21/2014 21:13:22
推 yyc1217:doc的確很少,用法的話建議是去看該method的unit test 07/21 22:56
推 Killercat:不過Java寫Restful Interface的確比較麻煩.... 07/22 01:06
→ Killercat:我前公司的做法是拿Djagle寫後端 API呼叫Java 07/22 01:07
→ Killercat:為了避免JVM頻繁啟動 所以把Java Daemon化 07/22 01:07
→ Killercat:這樣有個好處就是實作(JVM)跟界面(Django)分開且獨立 07/22 01:08
→ Killercat:Java寫API其實不管用哪個Framework 都是很「巨」的 07/22 01:08
→ Killercat:尤其是跟Spring連動 恩..... :D 07/22 01:10
推 popcorny:我自己是用Jersey Server+Client 我不直接用Jersey的 07/22 09:43
→ popcorny:Object to Json.. 而是自己先用Gson互轉Json<->String 07/22 09:43
→ popcorny:這樣比較彈性一些,直接傳進傳出目標type雖然方便 07/22 09:44
→ popcorny:但是方便的另一個面相就是沒有彈性 07/22 09:44
我嘗試了以下這樣的code
http://paste.bradleygill.com/index.php?paste_id=77836
在透過jackson將Object轉json這部分看起來是沒有問題
可是json傳進Jersey卻出錯了
Exception in thread "main" java.lang.NoClassDefFoundError:
com/fasterxml/jackson/core/Versioned
※ 編輯: JohnnyDell (122.116.194.46), 07/22/2014 13:49:43