Embedded Tomcat Causing CF Push failure
search cancel

Embedded Tomcat Causing CF Push failure

book

Article ID: 294505

calendar_today

Updated On:

Products

Support Only for Apache Tomcat

Issue/Introduction

Symptoms:

When a customer tries cf push an app that is built with Spring Boot 1.4.0 + Embedded Tomcat 8.5.4, it fails.

cf logs APP_NAME --recent shows the following error message:

2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.081 INFO 14 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.086 INFO 14 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.4
2017-05-09T03:24:15.18-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.180 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
2017-05-09T03:24:15.33-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.329 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.686 ERROR 14 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase : A child container failed during start
2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
 

Environment


Cause

This is caused by a resource caching bug in Spring Boot 1.4.0 with Embedded Tomcat 8.5.4.

This bug would be triggered whenever there is a .class or .jar file under /WEB-INF/lib/.

More details of this bug can be found here.

Resolution

The bug was fixed in Tomcat 8.5.5 (which is included in Spring Boot 1.4.1), so use Spring Boot 1.4.1 to rebuilt the app and cf push again.