前提・実現したいこと
Javaで作成したWEBアプリケーションで利用している
MySQLのバージョンを5.6.25から8.0.12にあげたいです。
現在 : Java7、MySQL(5.6.25)、Tomcat7
更新 : Java8、MySQL(8.0.12)、Tomcat7
現在利用している5.6.25をアンインストールした後、8.0.12をインストールしました。
JDBCのバージョンはMySQL5からMySQL8対応のものに変更し起動させると以下のエラーが発生します。
エラーの原因として考えられるものがあればご教示ください。
(設定ファイルで変更が必要なのでしょうか・・?)
発生している問題・エラーメッセージ
ERROR: org.springframework.web.context.ContextLoader - Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.mysql.cj.jdbc.MysqlConnectionPoolDataSource] for bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/MysqlConnectionPoolDataSource : Unsupported major.minor version 52.0 (unable to load class com.mysql.cj.jdbc.MysqlConnectionPoolDataSource) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1394) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:641) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:609) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1490) at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1013) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:741) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5118) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1092) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1984) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:744) Caused by: java.lang.UnsupportedClassVersionError: com/mysql/cj/jdbc/MysqlConnectionPoolDataSource : Unsupported major.minor version 52.0 (unable to load class com.mysql.cj.jdbc.MysqlConnectionPoolDataSource) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3209) at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1373) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1861) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735) at org.springframework.util.ClassUtils.forName(ClassUtils.java:251) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:401) at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1438) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1383)
該当のソースコード
applicationContext.xml
xml
1<!-- DataSource --> 2 <bean id="dataSource" class="com.mysql.cj.jdbc.MysqlConnectionPoolDataSource" destroy-method="close"> 3<!-- <property name="driverClassName" value="com.mysql.jdbc.Driver" /> --> 4 <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" /> 5 <property name="url" value="jdbc:mysql://sampledb/sample?characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL"/> 6<!-- <property name="url" value="jdbc:mysql://sampledb/sample?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull" /> --> 7 <property name="username" value="sample_db" /> 8 <property name="password" value="sample_pw" /> 9 10 <property name="removeAbandoned" value="true" /> 11 <property name="removeAbandonedTimeout" value="300" /> 12 13 <property name="validationQuery" value="select 1" /> 14 <property name="testOnBorrow" value="true" /> 15 <property name="testOnReturn" value="true" /> 16 </bean>
pom.xmlの一部
xml
1<dependency> 2 <groupId>mysql</groupId> 3 <artifactId>mysql-connector-java</artifactId> 4 <version>8.0.11</version> 5</dependency> 6 7#追記 8<plugin> 9 <groupId>org.apache.maven.plugins</groupId> 10 <artifactId>maven-compiler-plugin</artifactId> 11 <version>3.6.1</version> 12 <configuration> 13 <compilerArgs> 14 <arg>-profile</arg> 15 <arg>compact1</arg> 16 </compilerArgs> 17 <source>1.8</source> 18 <target>1.8</target> 19 </configuration> 20</plugin>
試したこと
- applicationContext.xmlのデータソース部分とpom.xmlのmysql-connector-javaを変更しました。
- 認証形式(default_authentication_plugin)をcaching_sha2_passwordからmysql_native_passwordに変更しました。
補足情報(FW/ツールのバージョンなど)
- 実行環境
CentOS 7.5
Java 1.8.0_171
MySQL 8.0.12
Tomcat 7
- 開発環境
Eclipse Mars 4.5.2
Maven
Java 1.8.0_172
Springframework 4.3.16
Mybatis 3.2.2
回答2件
あなたの回答
tips
プレビュー