Packaging and Deploying a Web Application into Standalone Apache Tomcat

You need to package your web application as a .war file to deploy it directly to Apache Tomcat. WAR stands for web archive. A different server might require a different format, for instance a glassfish server will need a .jar file whereas a websphere application server will require an .ear.


Installing and verifying a standalone Apache Tomcat

We will use a stand-alone tomcat for this example. Just download latest tomcat (.zip) version, unzip into a folder.

Now start tomcat server by running the startup.bat under the bin folder of tomcat installation.

You can verify if the server is running by typing localhost:<port> in the browser (e.g. http://localhost:8081).

You can view and change the default port for tomcat in the file server.xml under the conf folder of tomcat installation. Look for the element Connector configured for the HTTP protocol:

<Connector port="8081" protocol="HTTP/1.1"


redirectPort="8443" />


You can stop tomcat by running shutdown.bat under the bin folder of tomcat installation.


Packaging a war file to deploy into Apache Tomcat

We can package the application either from eclipse or using java jar command. We will see both.

In eclipse,

  • right click your dynamic web project,

  • select export > WAR file,

  • specify a destination folder

  • and click finish.

You can also optionally select optimize to a particular server already configured and also export source files along with class files.

Alternatively, you can create the war using java jar command as: Go to the workspace location of your project by right clicking the project, select Properties, and see the value for Location. Go inside the WebContent folder and run the below command from the command line:

jar -cvf myDynaServletApp.war myWebApp *

Note: Make sure that there is a folder WebContent/WEB-INF/classes and is your output folder with your class files. Else, right click your project in eclipse, go to Build Path > Configure Build Path and change the output folder in the Source tab to <project>/ WebContent/WEB-INF/classes. Browse and select the folder creating any folders if necessary than typing the location manually, as it is less error prone.


Deploying a war file into Apache Tomcat

Copy paste the war file into the webapps folder and start (startup.bat) if it is not running or restart (shutdown.bat, startup.bat) if already running. Server will unzip the war file and create a project root folder.

After you start the server you will see an additional project root folder under webapps.

To redeploy, you will have to shutdown, remove both war and folder, place new war and then startup again.


Format the servlet url and verify the servlet/jsp deployment

The url will be of the form host:port/<projectrootfolder>/servleturlpattern. Server is localhost and port it 8081 in my case. You can view and change the default port for tomcat in the file server.xml under the conf folder of tomcat installation. Url pattern is either configured in a web.xml file (web deployment descriptor) or through annotations.

I am using the same project that we have done for ‘Hello World Dynamic Servlet’ where we have configured the url patern through annotations:


public class HelloWorldServlet extends HttpServlet {

Also, my project root folder created is DynaServletProject.

So my final url is:


Execute the url in any browser and you will get the output as:

Hello World! 

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)