Built the latest version of MOTECH platform (master branch)
Using Java 8.
Getting the following exception in the log at startup
SEVERE: Error configuring application listener of class org.motechproject.server.impl.OsgiListener
java.lang.UnsupportedClassVersionError: org/motechproject/server/impl/OsgiListener : Unsupported major.minor version 52.0 (unable to load class org.motechproject.server.impl.OsgiListener)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:3111)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1348)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1828)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:506)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:488)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:115)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4919)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5517)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1095)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1930)
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:745)
Thanks to Pawel & Koshal for their help figuring this one out.
The current master platform requires Java 8.
My dev machine was running Ubuntu and Tomcat 7 installed as a service.
The default Tomcat 7 installation (sudo apt-get install tomcat7
) uses Java 7.
So I created a setenv.sh
file in the /usr/share/tomcat7/bin/
directory with the following content:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"
Which corresponds to where the Java 8 JDK is installed, which may be a different location depending on how you installed Java 8.
I then restarted tomcat and MOTECH started without any error, yay!
f