Fork me on GitHub

(code "liquidz.uo")

本記事の内容は Play framework 開発者の方々意向で ドキュメントに載せていない隠しAPI的な位置づけの機能を使っています。 どうしても使わざるを得ない場合を除いては使わない方が良いかと思います。

ちょっとしたものを Play framework(Java) で書いて Tomcat上で動かすということをしているのですが、

  • Apache ->(mod_proxy_ajp)-> Tomcat

という連携でApacheからTomcatに渡される環境変数を playで受け取れなくて困っていました。

そこで色々調べたのですが HttpServletRequest を扱う方法がありました。

隠されてましたが

#99: Lighthouse 588 patch by grandfatha for playframework/play - Pull Request - GitHub

すべてはここに書いてあります。 ものすごく意訳すると

こんなに美しくないアイデアはないけど、

Servlet APIにアクセスせざるを得ないユーザがいるのは事実。

モジュールに切り離せればベストだけどそれもできないからマージするよ。

でもこんなのドキュメントになんか書いてあげないんだからねっ!

ということでコントローラ内から以下のコードでアクセスできます。

HttpServletRequest req = (HttpServletRequest)request.args.get(ServletWrapper.SERVLET_REQ);

上記の通り、あえてドキュメントに書かれていないことなので 2度目になりますが、どうしてもという場合以外は使わない方が良いと思います。

» Go page top

blog comments powered by Disqus