Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tomcat undeploy does not remove web application artifacts

Tags:

tomcat

How do I get Tomcat to remove the web application artifacts when using the Manager to undeploy the application?

I am using Tomcat 6.0.18. The application was deployed using the tomcat-maven-plugin 1.0-SNAPSHOT but the behavior is the same through the maven plugin or the web interface.

The Tomcat documentation provides warnings on how undeploy should behave on the Manager How To.

The war file can be removed; however, the unpacked application directory remains preventing a redeploy.

like image 292
Steve Lucord Avatar asked Jan 27 '09 17:01

Steve Lucord


People also ask

How do I undeploy a web application using Tomcat?

To learn how to undeploy web applications using the Apache Tomcat manager, follow these eight steps: Start the Tomcat server. You'll need to create a WAR file so that you'll have a sample website to undeploy.

How do I deploy Tomcat artifacts to a server?

Go to the Deployment tab and click on the + symbol, select artifact you want to add to the server and click OK 7.2. Remote Configuration Follow the same instructions as for local Tomcat configurations, but in the server tab, you must enter the remote location of the installation. 8. Deploy by Copying Archive

How to manually deploy a WAR file in Tomcat?

To manually deploy a .war file is so easy, you just need to copy that .war file to your tomcat webapps folder. After that, the war file will be extracted to a subfolder under the webapps folder automatically.

What does it mean when a website is removed from Tomcat?

In other words, the website will be removed from Tomcat and therefore no longer be available on the World Wide Web. To learn how to undeploy web applications using the Apache Tomcat manager, follow these eight steps:


2 Answers

It may also be an issue with file locking (particularly on Windows) if you are accessing resources in a JAR library via a URL within your app.

I just had a similar issue and fixed it by modifying the following line in the

Apache Tomcat/conf/context.xml

file to:

<Context antiJARLocking="true" antiResourceLocking="true" >

(Note that there is some contention as to whether this is production safe since it creates copies of your webapp for each redeploy, but if you're on Windows and you can't fix the issue at the source, then this may provide a workable solution).

like image 113
Richard Nichols Avatar answered Oct 04 '22 04:10

Richard Nichols


It might be that your application cannot completely be undeployed because there are background threads (that you most likely started yourself) or long running requests that are preventing the application to stop completely.

Did you inspect the log files? Did they state if the application could be undeployed successfully? Or the opposite? Can you get a Thread dump after you attempted to undeploy (kill -3 processid on Unix, Ctrl-Break in a console in Windows) and see if there is something still running that shouldn't?

Also note that most applications I've seen cannot be undeployed completely with regard to the memory they took. I've run into OutOfMemoryErrors (PermGen) quite often, especially after redeploying webapps (you'll find a lot of references on PermGen if you google for it) therefor I believe redeploying is ok for development machines, but not for production ones. It's better to know this before you're puzzled by this in production.

like image 37
Olaf Kock Avatar answered Oct 04 '22 04:10

Olaf Kock