Q: Auto update tomcat application I'm looking for a solution to auto update an application installed on a tomcat server.
The application I am coding should update itself when a newer version is available on a public server. 
It is important to say that the client install himself the war file on its own server.
How can I do that without asking the client to create a program called by a cron task to update the war file if needed ?
The goal is that all the client use the same version of the application.

A: You may be able to do this from within your application if the manager application is already installed. Simply write a periodic process (e.g. Quartz, or write your own poor-man's cron in Java) that pings the central server for updates.
If your update server is smart enough to do this, you should be able to simply make an HTTP GET request with an If-Modified-Since header so you'll either get a 304 Not Modified response or you'll get a 200 OK with the updated WAR file. If you get a 304, do nothing.
If an update is found, download the updated WAR file (into memory, or stream it) while simultaneously making a connection to the manager application to deploy the new version.

A: In my opinion, you can have a daemon thread [the java program will be part of the app] running to check for an update version from a repo. Once available, the threading program can  fetch the latest version. And then install the latest app by overwriting the existing one. Reload the app context. 
