Servlet3.0の@WebFilterの微妙な点

ボルダリングじゃなくて久々に本業系のエントリ!でもボルダラーって結構IT系の人が多いので意外と通じる?
#関係ないけどセッションってIT界隈でもボルダリング界隈でもある単語ですよね!

今年は新入社員のインストラクターになったので、色々とエンプラ系Javaのイロハを教育中なのだけども。その中でServletでいろいろ作って勉強しましょうということで。。久々に演習問題を作っていると、Tomcatは最新ではバージョンは7になっていて、Servlet3.0に追いついて、その目玉機能として、EoDとして「Annotation based configuration」が新しく定義されている。アノテーションを利用することでServletの開発が簡単になるという。いいね!自分が大分世の中から周回遅れにされていることがわかってショックだったけど、さっそく使ってみよう!

例えば、Servletの実行時間を測定するFilterで下記のようなものを作ってみるとか。

その後、FilterをChainさせて奥のほう(Servlet側)で例外をスローさせて下記のようなスタックトレースを眺めさせてChainの構造を考察&理解させようと思っていたのだけど、、、。

8 04, 2014 7:26:52 午後 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: サーブレット org.sasaki.Problem2 のServlet.service()が例外を投げました
java.lang.RuntimeException
at org.defenceless.filter.MeasuringTimeFilter.doFilter(MeasuringTimeFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.defenceless.filter.ExceptionFilter.doFilter(ExceptionFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.defenceless.filter.AnotherFilter.doFilter(AnotherFilter.java:40)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
(略)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:724)

ん、、アノテーションのAPIとして順番を指定するような仕様がない。。色々と調べてみると、下記の記事発見。

How to define Servlet filter order of execution using annotations

う~む。。。結局、Filterの刺さる順序をアノテーションでは指定できない。結局Web.xmlに書くしかない。。順番指摘できないFilter誰が使うのだろうか!?

Bouldering Day 201

麻布SPIDER。

土曜日。この週はひたすら寝不足だったので昼前までガン寝。

起きるとアベくんから

「SPIDERオープンしたみたいだから、行かない?」

とのこと。ふ~む、、。どうだろうね。

まぁでも8月は1週間帰省するし、J&S恵比寿の月パスは一旦止めて、他ジム遠征の月にしてもいいかもな~。ってことで宮川さんとも合流して、SPIDERへ!

行ってみると、高さも広さもそんなに無いのだけど、ホールド選びが結構面白い感じ!HRTホールドは無くて、core、x-cult、rokodromoの野口啓代がシェイプしたホールドやらThe gecko worldやら、、見たことないようなホールドが結構沢山で新鮮。
チョークは粉もOKだし、そもそもマムートのチューブが無料貸し出しで地味に嬉しい!あれ良いよね~。夏だと特にスースーして手汗が一時的抑制できる感じがする。自分で買うには高いけど。。

あと、ワールド全開系のブログで有名な店長の大木さんとお話しさせていただくと、

「カチとかスローパーとかの持ちにくいホールドで難しさを出すのではなくて、なるべく持ちモノは良いんだけどムーブを起こさないと登れない、というふうにしたい。」

とのこと。なるほどね~。

Untitled

Untitled

カメラロール-3366

各級に課題が10個弱って感じ。結構頑張って登ってブハブハしました。

しかしtwitterでも麻布ボルダリング事情は若干つぶやかれてるね~。

↑これちょっとウケた

Bouldering Day 200

J&S恵比寿。

記念すべきボルダリング200回目はやはりこのジムだったか~。
100回目の時はいつだったかな?と思ってBouldering Day 100を見てみると、前のアベくん宅で鍋パやった時の会で結構切なくなった!まぁでも、酸いも甘いも残るのが順道制勝ということで。これからもよろしくお願いします!

ちなみに順道制勝は「じゅんどうせいしょう」と発音します。最近問い合わせ多かったので。

話を元に戻して、この日は傾斜壁の4級。2手目のカチ取りのために、スタートに手に足ヒールするのはいいんだけど、ガバ過ぎて解除が大変。。ガバなんだけどもガッツリとフックせずに浅めに入れておく、、、という技を覚えた!結構打って、つながるようになったのだけど、ゴール落ちを繰り返してしまい良くない感じ。。次回しっかり落す~!

Bouldering Day 199

J&S恵比寿。

ちょっと日記が追いつかなくなってきている。。
別にジムにいく頻度は変わっていないのだけど、日記を更新する頻度が落ちている。

この日は傾斜壁の部屋が結構セッションで混雑していたので、たまには垂壁のテープでもやりましょうということで。

なんとなく苦手意識があって着手していなかった、4級の縦棒をクリア~。
しばらく垂壁やってなかったからどうかなと思ったけど、なんか傾斜壁やっているとデッドも覚えるし、
腕力や保持力も徐々についてくるので、垂壁よりも傾斜壁やったほうがまだまだ良いな~と思った。

逆に、垂壁でしかつかないスキルや力ってあるのかね?
恵比寿でいえば、基本垂壁はトラバースだから、片手で保持ってトラバースする力とか?
凹角で張って登っていく感じとかかな?いろいろ意識してみよう。