Hello JAX-RS (XML Response)

JSONオブジェクトを送信し、XMLドキュメントを受け取るケース

POJOをXMLに変換できるように設定する。

HelloResponse.java

package hello;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement(name = "response")

public class HelloResponse {

String message;

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

XMLを返すように設定。

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("/helloxml")

@Produces("application/xml")

@Consumes(MediaType.APPLICATION_JSON)

public class HelloServletXml {

@POST

public HelloResponse getMessage(HelloRequest request) {

System.err.println(this.getClass().getName() + ":"

+ request.getMessage());

try {

HelloResponse response = new HelloResponse();

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

return response;

} catch (Exception e) {

// Utils.handleException(e);

e.printStackTrace();

}

return null;

}

}

XMLを受け取れるようにクライアントを設定

<!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/helloxml",

data : JSON.stringify(params),

contentType : 'application/json',

dataType : "xml",

success : function(result, dataType) {

console.log("OK1");

console.log($(result).find("message").text());

},

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>