Problems Deploying A Spring-Boot-App As WAR
Spring-Boot-App Is Not Started, When Deployed As WAR
Recently, I had a lot of trouble, deploying my spring-boot-app as war under Tomcat 8 on Debian Jessie. The WAR was found and deployed by tomcat, but it was never started. Browsing the URL of the app resulted in a 404. And instead of the fancy Spring-Boot ASCII-art banner, the only matching entry that showed up in my log-file was:
INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Spring WebApplicationInitializers detected on classpath: [org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration$JerseyWebApplicationInitializer@1fe086c]
A blog-post from Stefan Isle lead me to the solution, what was going wrong.
In my case, there was no wrong version of Spring on the classpath.
WebApplicationInitializer was not found, because I had it compiled with a version of Java, that was not available on my production system.
WebApplicationInitializer Not Found Because Of Wrong Java Version
On my development box, I had compiled and tested the WAR with Java 8.
But on my production system, running Debian 8 (Jessie), only Java 7 was available.
And because of that, my
After installing Java 8 from debian-backports on my production system, like described in this nice debian-upgrade note, the
WebApplicationInitializer of my App was found and everything worked like a charme, again.
Funded by the Europian Union
This article was published in the course of a resarch-project, that is funded by the European Union and the federal state Northrhine-Wetphalia.