Michael Koltsov's den my cup of tea

/ stuff

Why Spring Boot uses tomcat but not jetty?

I had an annoying bug while migrating some code from Spring Boot to a legacy Spring application.

Every time i’ve been changing some front end code my Grunt build failed because it couldn’t change the corresponding file(i use a highly sophisticated pipeline to compile assets). At first i was thinking that my VCS was the cause of a problem, but that was not the case. Then i find that build fails after the app server runs.

After a couple of wasted hours some serious googling has helped me to find that jetty was in charge!

The jetty:run command locks the files that you web server is serving to the clients. In case of legacy apps(jsp\jsf) it’s not a problem because static resources got generated on the server. If you’re writing a single-page app(Angular, React all the things) you should be aware of this annoying problem.

The problem can be fixed, but from now on i prefer tomcat in my SBT/MAVEN/GRADLE projects!

p.s. Spring Boot & Grails use Tomcat since the beginning