I know there are many questions on StackOverflow that provide a solution to this problem (and I have come all this way by following those solutions), but I am still stuck.The app runs fine locally on my machine, but I can’t get this to work on a Ubuntu server. Here is what I have done to tackle this problem:
- I understand that
Unsupported major.minor version 52.0
means there is a conflict with the Java version. I fixed this by installing Java 1.8 on my Ubuntu server and making it the default Java. - My
java -version
andjavac -version
are1.80_40
on Ubuntu server and1.8.0_31
on my local machine. - My
$JAVA_HOME
path on Ubuntu server is/usr/lib/jvm/java-8-oracle/
- I restarted both Tomcat and Postgres after doing this (not that it matters?)
Here are the errors I get after deploying my WAR file:
java.lang.UnsupportedClassVersionError: com/appname/servlets/getServlet: Unsupported major.minor version 52.0 (unable to load class com.appname.servlets.getServlet)
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:1040)
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)
Edit: Please don’t mark it as duplicate. I feel my problem is something else because I know it is compiled and running on same versions (Java 1.8).