Seasar2でJava8対応した時の流れ

初投稿
仕事でSeasar2のアプリをJava8にした時にハマったので、流れを含めて記事にしてみる

## eclipseの設定で、プロジェクト・ファセットやコンパイラなどをJava8に
<img width="500" alt="スクリーンショット 2016-01-21 23.25.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/0d027c5c-e362-313b-60f4-22bf907598dd.png">  

## Java8のコードを書いてみる  
<img width="500" alt="スクリーンショット 2016-01-21 23.26.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/a27640b3-8d6a-9df3-8064-d5233b3a893a.png">

## mavenでwarファイルを作成する、とこんなことが起きる  
>[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.818 s
[INFO] Finished at: 2016-01-21T23:13:20+09:00
[INFO] Final Memory: 11M/189M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project seasar-maven: Compilation failure
[ERROR] /Users/kyuuuuuji/opt/workspace/seasar-maven/src/main/java/com/kyuuuuuji/action/IndexAction.java:[26,48] ラムダ式は-source 1.7でサポートされていません
[ERROR] (ラムダ式を使用可能にするには、-source 8以上を使用してください)
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException


## pom.xmlを見てみると…  
<img width="560" alt="スクリーンショット 2016-01-21 23.40.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/d2710ef1-7ff9-5587-8f05-0dac36f51b1f.png">
この辺がなんか古そう  


## 更新してみる
<img width="483" alt="スクリーンショット 2016-01-23 14.40.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/a5da0457-2591-7916-5a72-2b828992776e.png">


## もう一回ビルド
>[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.155 s
[INFO] Finished at: 2016-01-21T23:44:57+09:00
[INFO] Final Memory: 14M/205M
[INFO] ------------------------------------------------------------------------  

できたっぽい？

## じゃあ、ローカルで動かしてみよっと
http://localhost:8080/{プロジェクト名}
<img width="600" alt="スクリーンショット 2016-01-21 23.51.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/947fea76-c3df-e3f3-2b94-a5484b7e7fd7.png">
お、おお？


## どうやらこいつが悪いらしい
>jboss:javassist:jar:3.4.ga


## ならば最新にしてみよう
seasarのライブラリに依存しているjavassistを除外して
<img width="477" alt="スクリーンショット 2016-01-23 15.56.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/91d40005-96b7-5ad3-f302-267e33adea84.png">  

最新のjavassistを新たに依存関係として追加<img width="521" alt="スクリーンショット 2016-01-23 15.58.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/b46e74cc-3d71-964b-03a3-4f8c73d6b4de.png">

## これで動かすと…
<img width="411" alt="スクリーンショット 2016-01-23 16.00.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/96052/c29b9fef-5990-a3cf-af8f-41c2936e060a.png">

できた！！


## まとめ
* 単にJava8にしただけでは動いてくれない
* mavenでビルドしているseasar2の場合、mavenプラグイン周りが古いことがあるので要更新
* javassistがjava8で動くバージョンになっていないため、自分で依存関係を更新してやる必要がある


以上！