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 件のコメント:
コメントを投稿