レストレットの応答にヘッダーを追加する方法がわからないようです。Response
オブジェクトで使用可能なメソッドを見るとsetStatus
、、、だけが表示されますが、これらのいずれも、応答にカスタムhttpヘッダーを設定する方法を教えてくれません。setEntity
setAttributes
たとえばGET
、次のようなリターンを返す呼び出しがあります。
HTTP/1.1 200 OK
Content-Type: text/json
Content-Length: 123
Some-Header: the value
Some-Other-Header: another value
{
id: 111,
value: "some value this could be anything",
diagnosis: {
start: 12552255,
end: 12552261,
key: "ABC123E11",
source: "S1",
}
}
多分それが何であれ。handleGet
メソッドでは、次のように処理します。
final MediaType textJsonType = new MediaType("text/json");
@Override
public void handleGet() {
log.debug("Handling GET...");
final Response res = this.getResponse();
try {
final MyObject doc = this.getObj("hello", 1, "ABC123E11", "S1");
final String docStr = doc.toString();
res.setStatus(Status.SUCCESS_OK);
res.setEntity(docStr, textJsonType);
// need to set Some-header, and Some-other-header here!
}
catch(Throwable t) {
res.setStatus(Status.SERVER_ERROR_INTERNAL);
res.setEntity(new TextRepresentation(t.toString()));
}
}