On 29/09/2023 20:20, Bruno Melloni wrote:
On a tomcat server I have a number of REST services deployed as WARs.
There are interdependencies and even applications on other servers that
call them, so I really don't want to start calling services after
starting Tomcat until every single webapp is fully up and running.

Ideally, I would like to do it*programmatically*.

QUESTIONS

   * Is there a REST, other kind of API that I can call or a library that
     I can use?

You could check the status of each application via JMX.

   * Is there a known best practice on how to accomplish what I am
     looking for?  Perhaps a third party library that does the job?

Nothing comes to mind.

Things I know I can try, but none is an ideal solution:

   * Manually look at the logs.
   * Manually look at the Tomcat Application Management page.
   * Programmatically call the Tomcat Application Management page and
     scrape the information I need from it.
   * Scour through the code of the Tomcat Application Management page and
     replicate the pieces that I need, for example someone mentioned in a
     forum that I can look at
     org.apache.catalina.manager.ManagerServlet.isDeployed(String name)
     to find out whether a webapp has been deployed or not.

If you are going the bespoke route, I'd suggest a health check / status endpoint for each app and call them in turn. It could easily be a standard component you deploy as part of each application.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to