JAX-RSでJSONを出力してみました。
これを使えば、JAX-RS + AJAXの組み合わせで
ThinServerアーキテクチャライクなことができる...のか?
(手順)
- GlassFishでWebアプリケーションプロジェクトを作成。
- パターンからのRESTful Webサービスを作成する。
- 単純なルート・リソースを作成
- パスを指定(今回はSampleを設定)。* MIME-TYPEには application/jsonを指定。
- getJSONメソッド内でJSONを作り文字列にして返す。
* http://localhost:8080/アプリケーション名/webresources/パス がアクセスパスになる。
RESTful Webサービスディレクトリ配下にあるクラス名を右クリックして
テスト・リソースURIを選択すると、実行できる。(GlassFishをあらかじめ起動しておく必要がある)
以下、サンプルコードです。
SampleResourde.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sample;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import javax.json.JsonObjectBuilder;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.PathParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
/**
* REST Web Service
*
* @author USER
*/
@Path("Sample")
public class SampleResource {
@Context
private UriInfo context;
/**
* Creates a new instance of SampleResource
*/
public SampleResource() {
}
/**
* Retrieves representation of an instance of sample.SampleResource
* @return an instance of java.lang.String
*/
@GET
@Produces("application/json")
public String getJson() {
String json;
JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
JsonObjectBuilder objBuilder = Json.createObjectBuilder();
objBuilder.add("time", "2015/01/23 14:30:25");
objBuilder.add("value", 45.5);
arrayBuilder.add(objBuilder);
objBuilder.add("time", "2015/01/23 14:30:25");
objBuilder.add("value", 45.5);
arrayBuilder.add(objBuilder);
JsonArray jsonArray = arrayBuilder.build();
json = jsonArray.toString();
return json;
}
/**
* PUT method for updating or creating an instance of SampleResource
* @param content representation for the resource
* @return an HTTP response with content of the updated or created resource.
*/
@PUT
@Consumes("application/json")
public void putJson(String content) {
}
}
出力はこんな感じになります。(適宜改行入れてます。)
http://localhost:8080/アプリケーション名/webresources/Sample にアクセス。
[
{
"time":"2015/01/23 14:30:25",
"value":45.5
},{
"time":"2015/01/23 14:30:25",
"value":45.5
}
]
0 件のコメント:
コメントを投稿