LoginSignup
1
1

More than 5 years have passed since last update.

Springのバリデーションの実装時の導入でのエラー

Last updated at Posted at 2018-09-06

springでのバリデーション実装エラー

環境

pom.xml
<properties>
    <!-- Generic properties -->
    <java.version>1.7</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- Web -->
    <jsp.version>2.2</jsp.version>
    <jstl.version>1.2</jstl.version>
    <servlet.version>3.1.0</servlet.version>


    <!-- Spring -->
    <spring-framework.version>3.2.3.RELEASE</spring-framework.version>

    <!-- Hibernate / JPA -->
    <hibernate.version>4.2.1.Final</hibernate.version>

    <!-- Logging -->
    <logback.version>1.0.13</logback.version>
    <slf4j.version>1.7.5</slf4j.version>

    <!-- Test -->
    <junit.version>4.11</junit.version>
</properties>

実装時でエラーが出るまでの手順

pom.xmlに2つのjarファイルを追加

pom.xml
<!-- validation-api(入力値検証で使用) -->
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
<!-- Hibernate(入力値検証で使用) -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.0.1.Final</version>
</dependency>

2つのエラーが出現

1, サーブレットがinit()エラー

HTTPステータス 500 - サーブレット dispatcherServlet のServlet.init()が例外を投げました
type 例外レポート
------------------------------------------------------------------------------------------

メッセージ サーブレット dispatcherServlet のServlet.init()が例外を投げました

説明 The server encountered an internal error that prevented it from fulfilling this request.

例外-------------------------------------------------------------------------------------------

javax.servlet.ServletException: サーブレット dispatcherServlet のServlet.init()が例外を投げました
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:436)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

<!-- 以下省略 -->

2, @NotEmptyが使用できない

エラーの解消

原因は追加したjarファイルのバージョンの関係
pom.xmlを変更し、再度プロジェクトの更新を行ったら2つとも解消

pom.xml
<!-- validation-api(入力値検証で使用) -->
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>
<!-- Hibernate(入力値検証で使用) -->
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.3.4.Final</version>
</dependency>

!!!エラーは消えたが、使用できない!!!

今回はバージョンの関係ということはわかったが、根本的な解決には至らなかったので、別の機会に再検討

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1