home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2013/04/08/本日の調査メモ : Jetty8, winstone再考, ServletのSessionのThreadSafe性

日記/2013/04/08/本日の調査メモ : Jetty8, winstone再考, ServletのSessionのThreadSafe性

日記 / 2013 / 04 / 08 / 本日の調査メモ : Jetty8, winstone再考, ServletのSessionのThreadSafe性
id: 1184 所有者: msakamoto-sf    作成日: 2013-04-08 01:27:41
カテゴリ: Groovy 

あるディレクトリで、その場で即席のWebサーバ立ちあげられたら便利だなと思いました。
PHPでも5.4になって組み込みサーバが使える様になりましたが、PEARなどの外部ライブラリの連携が最近はどうなってるか知らないので、ちょっとスルー。せっかくなのでGroovyエコシステムが使えたほうが楽しそうなので、やっぱりGroovy + Jettyだよね。
http://php.net/manual/ja/features.commandline.webserver.php

Jettyの前に、winstoneという軽量なServletContainerもありました。が、2008年で開発が止まってるのが微妙。

去年くらいにJetty8をGroovyで使ったことがあるが、GrapeでDLしたのがそのままロードされなくて、".ivy"以下にDLされたXMLファイルか何かを弄ってようやく"@Grab"出来た記憶が。
でも、またバージョンアップされてて、試したら今度はそんなバッドノウハウいらなかった。

groovyserv使うと、場合によってはgroovyserver側にJettyインスタンスが残ってしまう可能性を考慮して、ちゃんとシャットダウンシーケンス作りたいよね。Server.stop()とかServer.setGracefulShutdown()呼べば良さそう。

別ポート番号でHTTP受け付けて、そこからServer.stop()呼べばイインジャネ?

結局のところ、別ポート立ちあげなくとも、"__stop__"という特殊なURLにShutdown専用のServlet紐付けて、そこからServer.stop()呼ぶスレッド(wait中にしとく)をnotify()すればいいよね、ということでfix.

→というわけで Groovy/真・超お手軽Web開発(Groovy-1.8 + Jetty8, 201304版) をUP。そろそろGroovyServletでのサクサク開発のバリエーションでっち上げるの、飽きてきた・・・。4バージョン目じゃなイカ。

あと今更だけれど、SessionってThreadSafeだっけ?という話:

→Servlet2.5位で微妙に仕様が変わってるらしいが、いずれにしても、うっかりするとスレッドセーフでなくなる可能性が高い状況。基本スタンスとしてスレッドセーフ「でない」ものとして扱い、必要に応じて何かしらラッパーを挟む必要がありそう。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2013-04-08 01:27:58
md5:cf826a65ee0b6017aeba2e86189b46b3
sha1:f77fa77a9d20b166f3776ba7b175f268fd99bb6a
コメント
コメントを投稿するにはログインして下さい。