home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

Java/JAX-RS/Jerseyメモ

作成日: 2014-07-27 19:47:00   /   last updated at: 2014-07-27 20:31:43
カテゴリ: JAX-RS Java Jersey 

Jerseyの勉強メモ。
JAX-RSレベルで規定されている仕様については Java/JAX-RS/勉強メモ(JAX-RS 2.0) も参照。

  • Jersey
    • https://jersey.java.net/
      • GlassFish プロジェクトでも使われてる、Sunマイクロシステムズ時代からのJAX-RSのリファレンス実装。ライセンスはCDDLv1.1とGPLv2のデュアルライセンス。

練習サンプル:

Jerseyを使ったREST APIサーバとクライアントを作成するチュートリアル

"Content-Disposition: attachment" でファイルをダウンロードさせたい

StreamingObjectクラスをimplementしてResponseのentityにセットする。

参考サイト:

HttpServletResponseを直接参照・操作する→あんまりオススメできないかも。

JAX-RS 2.0の仕様としてはHttpServletResponseを直接参照、操作することも可能だが、副作用の発生する操作の組み合わせによっては期待通りに動かないケースも。

  • java - HTTPServletResponse status code is not in HTTP response header - Stack Overflow
    • http://stackoverflow.com/questions/11671190/httpservletresponse-status-code-is-not-in-http-response-header
      • 「HttpServletResponse.setStatus()したのが反映されない、なんで!?」に対して、HttpServletResponseでデータの出力まではしてないため、JAX-RS側でリソースクラスが本当にServletResponseを触ったのかどうか分からず、リソースクラスのメソッドもStringを通常通り返しているため、JAX-RS側としては200を返すしか無い、とのこと。解決方法として、ステータスコードを指定できるWebApplicationException()をthrowする方法がアドバイスされている。

original url: https://www.glamenv-septzen.net/view/1300