Checking If a Web Application Is Deployed
Problem
You need to check if a web application is installed on a particular context path.
Solution
Create an Ant target that sets a property if a given context path contains an installed web application. This target should execute before trying to remove the web application.
Discussion
Tomcat’s Manager application fails when trying to
remove a web application that does not exist. It’s
frustrating because the Ant build process must check if the web
application is installed before attempting to remove it. Luckily, the
solution is simple. Example 10-3 shows an
init target that checks if the web application is
installed on a given context path. The init target
sets two properties: is.tomcat.started and
is.webapp.deployed. The
condition task sets
is.tomcat.started to
“true” if the nested subtask
http returns a valid HTTP response code.[50] The
condition task sets
is.webapp.deployed to
“true” if Tomcat is started and the
nested http subtask returns a valid response code.
A valid response code means that some type of success occurred when
opening a connection to the URL. If a failure occurs, the URL is
assumed to be invalid.
Example 10-3. Checking if a web application exists on a given context path
<target name="init"> <condition property="is.tomcat.started"> <http url="${host}:${port}"/> </condition> <condition property="is.webapp.deployed"> <and> <isset property="is.tomcat.started"/> <http url="${host}:${port}/${webapp.context.name}"/> </and> </condition> ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access