8

I have this problem when I deploy my war USING mysql-connector-java-6.0.3.jar on a Apache Tomcat/7.0.52 (Ubuntu) JVM: 1.7.0_79-b14 compiled with JDK 1.7

java.lang.UnsupportedClassVersionError: com/mysql/jdbc/Driver : Unsupported major.minor version 52.0 (unable to load class com.mysql.jdbc.Driver)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2948)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:191)
    com.tdk.callbacks.CallBacksListener.doGet(CallBacksListener.java:45)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

This one when I compile with 1.8

java.lang.UnsupportedClassVersionError: com/tdk/callbacks/CallBacksListener : Unsupported major.minor version 52.0 (unable to load class com.tdk.callbacks.CallBacksListener)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2948)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

and this one with the 1.6:

java.lang.Error: Unresolved compilation problem: 
    Multi-catch parameters are not allowed for source level below 1.7
Nuñito Calzada
  • 4,394
  • 47
  • 174
  • 301

1 Answers1

14

The problem is not with compilation. The problem is that you try to run your Tomcat with deployed application using java 7. As your mysql driver and, potentially, your application are compiled with java 8, you have to use java 8 to run Tomcat

Nikem
  • 5,716
  • 3
  • 32
  • 59
  • 1
    Hi. I used Java 7 to compile the code on RHEL. I have MySQL 8.0.17 and mysql-connector-java-8.0.17.jar and I am facing the same error. The code can only be compiled with java 7 what should be the correct combination for me to fix my error? Any help is appreciated @Nikem – Babar Baig Sep 21 '19 at 05:58
  • 1
    @BabarBaig as it is said in the answer: "you have to use java 8 to run" your application – Nikem Sep 24 '19 at 04:43
  • Basically, I was trying to Build Apache Ranger. The requirement was to use Java 7 due to some restrictions of Apache Ranger. So I was successfully able to build and install Apache Ranger using the following. 1. Java 7 2. MySQL 5.1 3. Python 2.7 4. JDBC Connector 5.1.6 Thanks @Nikem – Babar Baig Sep 25 '19 at 13:04
  • THANK, you're a life saver ! – M E S A B O Dec 07 '21 at 17:05