Hello JAX-RS

作り方

1.JAX-RS のランタイムを用意する

2.Application のインスタンスを定義する

    • RESTのURLを定義する

HelloApplication.java

package hello;

import javax.ws.rs.ApplicationPath;

import javax.ws.rs.core.Application;

@ApplicationPath("/rest")

public class HelloApplication extends Application{

}

3.リクエストパラメータを定義する

  • POJOでOK

  • get や set は自動でランタイムがやってくれる

HelloRequest.java

package hello;

public class HelloRequest {

String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

4.レスポンスを定義する

  • POJOでOK

  • get や set は自動でランタイムがやってくれる

    • JSON や XML への変換も自動でランタイムがやってくれる

HelloResponse.java

package hello;

public class HelloResponse {

String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

5.ロジックを定義する

HelloServlet.java

package hello;

import javax.ws.rs.Consumes;

import javax.ws.rs.POST;

import javax.ws.rs.Path;

import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;

@Path("/hello")

@Produces("application/json; charset=UTF-8")

@Consumes(MediaType.APPLICATION_JSON)

public class HelloServlet {

@POST

public HelloResponse getMessage(HelloRequest request) {

try {

HelloResponse response = new HelloResponse();

response.setMessage("こんにちは");

return response;

} catch (Exception e) {

// Utils.handleException(e);

e.printStackTrace();

}

return null;

}

}

6.クライアントから呼び出す

helloajax_jaxrs.html

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Hello Ajax (JSON)</title>

<script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>

<script type="text/javascript">

function sendText() {

var params = {

"message" : "Hello"

// "key1" : "value1",

// "key2" : "value2"

};

$.ajax({

type : "post",

url : "/hellojaxrs/rest/hello",

data : JSON.stringify(params),

contentType : 'application/json',

dataType : "json",

success : function(result, dataType) {

console.log("OK1");

console.log(result);

console.log(result.message);

},

complete : function(json_data) {

console.log("OK2");

}

});

}

</script>

</head>

<body>

<div>

<input type="button" name="btnSend" style="font-size: 16px;"

value="送信" onclick="sendText()">

</div>

</body>

</html>

実行結果

ブラウザのコンソール

OK1

Object {message:"こんにちは"}

こんにちは

OK2

#JAX RS

#POJO

#Ajax

#JSON

#Java