JSPエラー:Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted

IT, Java

Strutsのソースを動かしていたらJSPでエラーが発生しました。
「Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum variables are permitted」
お客様環境では上記のエラーは発生しておらず、
あくまで僕の環境でのみ発生していました。
解決策を備忘録として残しておきます。


原因

JSPのコンパイルバージョンが原因でした。
スクリプトレット内でswich文を使うにはJava1.7以上必要だそうです。
tomcatのweb.xmlを見た所、
Tomcat7はJava1.6がデフォルトになっています。
Tomcat8はJava1.7がデフォルトっぽい。


解決策

Tomcatホーム/conf/Web.xmlを編集します。
デフォルトだと明示的に設定されていない
compilerSourceVMとcompilerTargetVMを追記します。
下記のように追記してあげればOKです。


IT, Java

Posted by raishin