概要
Springでバリデーションルールを作成するときに@Maxや@Minなどを使います
バリデーションルールを作成した上でテストを実施すると掲題のエラーが発生しました
プロジェクト上ではエラーにならずテストを実行すると発生する感じで若干ハマったので対応方法を紹介します
環境
- Windows 7 64bit
- Java 1.8.0_25
- Maven 3.2.2
- Eclipse 4.4 Luna
- Spring 4.1.5 RELEASE
開発シーン詳細
開発はEclipse上で行っておりSpringフレームワークを使ったWebAPIを作成しています
プロジェクトはMavenでビルドすることができるようになっています
Springにあるバリデーションの機能を使うためにBeansクラスを作成してそのBeansクラスがリクエストのパラメータをバインドするように実装しています
バインドするBeansクラス上で各パラメータにバリデーション用のアノテーションを付与しています
この状態でMaven経由でテストを実施するとバリデーションを使う部分で掲題のエラーが発生しました
対応方法
バリデーション用のアノテーションを使うために以下のようにpom.xmlを記載しました
<!-- Hibernate Validation -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.3.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.1-b04</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>el-impl</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
ポイントは最後のel-impl
でこれがないと掲題のエラーが発生する感じです
もちろんel-impl
がなくてもプロジェクトのエラーは発生しませんがmvn test
を実行するとエラーが発生する感じでした
開発している環境にもよりますがといあえず自分は上記で解決できたので紹介します
こんにちは。
返信削除なかなか原因に気がつきにくそうなエラーですね。