0
votes

Locally I usually deploy this war to Wildfly successfully, but trying Tomcat and getting errors.

In TravisCI I'm building my War with Maven and OpenJDK7

language: java
jdk:
  - openjdk7
script:
  - mvn package

Which creates the following in target/ classes rules-1.0-SNAPSHOT surefire generated-sources rules-MODELS-1.0-SNAPSHOT.jar surefire-reports jacoco.exec rules.war test-classes maven-archiver site

Then I'm deploying the war from target/ in a Docker container to Tomcat 8-JRE7 FROM tomcat:8 ADD target/rules.war /usr/local/tomcat/webapps/ CMD ["catalina.sh", "run"]

Tomcat starts, but in the localhost.log I see org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath

20-Jun-2016 02:12:30.827 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath

20-Jun-2016 02:12:30.835 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Error configuring application listener of class org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1332) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1166) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:518) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:499) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4764) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:940) at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1816) 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)

20-Jun-2016 02:12:30.867 SEVERE [localhost-startStop-1] org.apache.catalina.core.StandardContext.listenerStart Skipped installing application listeners due to previous error(s)

I read a few posts with similar warnings that suggested moving from JDK 1.8 to 1.7, but I'm currently using OpenJDK7 (maven build) & JRE7 (Tomcat docker). Should I be deploying anything else from target/ besides the war?

1

1 Answers

0
votes

You need to have a WebInitializer in you deployable module in order to notify Tomcat about the dispatcher servlet configurations. This should be a class extending any of the implementations of WebApplicationInitializer interface.

Example:

public class GatewayWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    // ...
}