- 締切済み
Spring MVC + JPA + MySQL
STSの[Simple Spring Web Maven]プロジェクトにおいて、Hibernate JPA経由でMySQLに接続し、データのselect・insertをすることについて、STS付属のtcServerで成功しました。 しかし、[Run as]→[Maven install]でwarを出力し、Tomcatにデプロイすると失敗します。 エラーメッセージ(下記のようにvalidation関係)を元に調べると、stackoverflowに何ページか(例えばhttp://stackoverflow.com/questions/21950607/abstractmethoderror-on-deploying-spring-4-0-in-tomcat-6のような情報)あったので、 pom.xmlのhibernate-validatorやvalidation-apiのバージョンを変えて色々試した結果が下記です。 ●hibernate-validatorを4.2.0.Final、validation-apiを1.1.0.Finalにすると 「Web ページが見つかりません」HTTP 404 ●hibernate-validatorを4.3.1.Finalや5.0.1.Finalや5.1.1.Final、validation-apiを1.1.0.Finalにすると HTTPステータス 500 - サーブレット dispatcherServlet のServlet.init()が例外を投げました 原因 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) (中略) 原因 java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.validator.internal.engine.ConfigurationImpl org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276) org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:188) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541) (中略) ●hibernate-validatorを5.1.1.Final、validation-apiを1.0.0.GAにすると HTTPステータス 500 - サーブレット dispatcherServlet のServlet.init()が例外を投げました 原因 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458) (中略) 原因 java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269) org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:188) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1541) (中略) 原因 java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41) javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269) ちなみに、MySQLを使わないSpringプロジェクトはTomcatで正常動作しています。 また、フレームワークを使わずにサーブレットのみで書き、JDBCでMySQLに接続しSQL操作するプロジェクトはTomcatで正常動作しています。 また、war出力時にエラーや警告はありません。 解決策をどうかご教示ください。 宜しくお願いします。 [環境] Windows 7 Tomcat 7 MySQL 5 Spring Tool Suite 3.6.0
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- teketon
- ベストアンサー率65% (141/215)
基本的なことですが、mavenで作成したwarに、 hibernate-validatorやvalidation-apiのjarは含まれていますか?
補足
はい、[WEB-INF]\[lib]内に含まれています。