Steps for configuring Tomcat 6 in Eclipse
- Download Eclipse and extract it into a folder. (I have downloaded Eclipse-Galileo [Eclipse IDE for Java EE developers] from http://www.eclipse.org/downloads/ and extracted in into D:\Eclipse )
- Download Tomcat 6.0(http://tomcat.apache.org/download-60.cgi ->Core->zip) and extract it into a folder. (I have extracted it into D:\apache-tomcat-6.0.20)
- Download JDK 6 (http://java.sun.com/javase/downloads/index.jsp ->
- Open eclispe by double clicking eclipse.exe
- Create a workspace
- In windows->Preferences->server -> run time environment
- Click add, select the Tomcat v6, click Next
- Set the Tomcat installation directory (for me it is D:\apache-tomcat-6.0.20)
- Set the JRE by clicking Installed JREs -> Add -> Standard VM -> set the JRE home to JDK folder (path in step 3)
- Click finish
- Select the newly added JRE and click Ok
- Select the newly added JRE from the drop down of JRE and click Finish
- At the top right corner of eclipse there is a button ‘Open perspective’. Select Java EE perspective.
- If you can’t see ‘Server’ tab at the bottom, select Windows->show view -> server
- In the server tab at the bottom, Right click -> New Server -> Select the Tomcat v6 and click Finish
If you want to run the tomcat manually from command prompt then set the environment variable JAVA_HOME to jdk path ie the path in step 3
There are 2 ways to install Tomcat on Ubuntu: automatically from repository and manually from Apache.
1.Install from repository (tomcat6-admin and tomcat6-webapps are optional)
sudo get-apt install tomcat6 tomcat6-admin tomcat6-webapps
then start/stop/restart tomcat with following command
The problem is that you cannot configure Eclipse to work with it because conf and lib are under different directories. So for development machines, you might want to install it manually. In case you have installed it from repository, you can remove it with
sudo apt-get –purge remove tomcat6 tomcat6-admin tomcat6-webapps
download tomcat from Apache
tar -zxvf apache-tomcat-x.x.xx.tar.gz
sudo mv apache-tomcat-x.x.xx /opt/
ln -s apache-tomcat-x.x.xx tomcat
add this line
start/stop tomcat with
To use tomcat manager, you have to configure users.
<user name=”admin” password=”admin” roles=”manager,admin” />
right before </tomcat-users>
Integrate Tomcat into Eclipse
Apache Tomcat V6.0->Next->
I started working through Hightower’s tutorial available as a free pdf from theserverside.com and am having a few problems. I will record fixes as I encounter problems. Note that Struts version 1.3.10 has changes whereas the Hightower tutorial, Jakarta-Struts Live, is for version 1.1. I am also working with Tomcat 6 (apache-tomcat-6.0.18) , ant (apache-ant-1.7.1) and Java 6 (jdk1.6.0_04) . The fixes I am describing are what I am getting to work on the above-described configuration. I am not saying that the tutorial is wrong for Struts version 1.1.
On page 4 where he is discussing setting up on a Tomcat 5 server, note that Tomcat 6 has changed the previous directory structure $TOMCAT_HOME/common/lib/ to just $TOMCAT_HOME/lib/ … there is no longer a common directory present.
On page 17 where we are writing our first action form, note that the class ActionError is no longer available in Struts 1.3.10 and one must use ActionMessage instead. So, in the code for the UserRegistrationForm class, comment out ‘import org.apache.struts.action.ActionError;’ and add ‘import org.apache.struts.action.ActionMessage;’ … Also later on, swap out ActionError in the validate method with ActionMessage.
On page 20 where we are writing our first input view (jsp page), we ignore any of the changes to the web.xml file with regard to the additions. Also, still in #2 on that page, we do the directives in the jsp differently. Instead of
‘<%@ taglib uri=”/tags/struts-html” prefix=”html”%>’
use the following namespaces for the uri, like this:
‘<%@ taglib uri=”http://struts.apache.org/tags-html” prefix=”html”%>’
‘<%@ taglib uri=”http://struts.apache.org/tags-bean” prefix=”bean”%>’
I spent a lot of time diddling around with this and from what I read in the google searches, a lot of other people have wasted time too. This is because the tld’s are packaged in the struts-taglib-1.3.10.jar file which is in the lib directory in WEB-INF in the struts-blank app. The servlet api has now made it easy to find the tlds in the jar file provided they were packaged properly (see the Struts site for instructions for a proper configuration or look at the jar file in the distribution). Note that including taglib information in web.xml will result in the application not being able to find the tlds.
ON PAGE 27 UPDATE THE ACTION TO HANDLE FORM AND CANCEL BUTTONS
Since version 1.2.8 the ‘cancellable=”true”‘ statement must be placed in the action tag path=”/userRegistration” in struts-config.xml. Otherwise, hitting the cancel button results in exception.
MOVING ON TO USING DATABASE
As an FYI Hightower notes that, although he is using an HSQL database, “You
should be able to use any database that has a suitable JDBC driver.” … which should be true but in this example, the name of the table, USER, isn’t going to work on an Oracle database because USER is a reserved word. Hence I changed the name of the table to STRUTSUSER since I was using an Oracle database.
On page 30 of the tutorial the code uses the method getDataSource which is not present on the Action class in version 1.3.10. I found a discussion at JavaRanch and will use a DAO which in turn will use JDBC to get a connection to the database. This is good for separation of concerns and is immediately valuable for unit testing the DAO independent of the rest of the application (always a good thing!). Nevetheless, this makes the datasource-relevant information, which was added to struts-config.xml, irrelevant and for me the entire Struts 1.X version somewhat dysfunctional and even more reason to use Struts 2.x version or, its evolved form (Spring… :). Having just coded the DAO and using raw JDBC for database manipulation, I am reminded of how easy Spring makes database manipulations because it saves you from TCFTC (Try-Catch-Finally-Try-Catch).
Oh, and yes, at this point forget about letting Struts handle any database connection pooling …
PAGE 32: EXCEPTION HANDLING
Now that we’re not even using Struts to manage database connections, it’s not going to see any sql exceptions either(we’re catching sql exceptions in our DAO) so we need to find another way to worry about exception handling by Struts.
PAGE 35: DISPLAY AN OBJECT WITH STRUTS TAGS
This works as described in the tutorial but remember to use the uri discussed above for the bean tag.
PAGE 37: USING LOGIC TAGS TO ITERATE OVER USERS
As discussed above, the logic tags directive would look like this:
<%@ taglib uri=”http://struts.apache.org/tags-logic” prefix=”logic”%>
CHAPTER 2: TESTING STRUTS
Having suffered through the early versions of EJB I am reminded of one of the reasons why developers created their own lightweight frameworks, like Struts and Spring – to enable unit testing the POJOs (the domain-object model) without the container obstructing the tests. For those not familiar with the history of that era, I recommend Bruce Tate’s “Don’t Make Me Eat The Elephant Again.”
PAGE 59: Using StrutsTestCase (Mock Mode) Step-by-Step
I will be using strutstest-2.1.4.jar
Apache Tomcat is a free and open source software implementation for JavaServlets, providing support for Java Server Pages (JSP). Many popular web-based applications use servlets. You may choose to run Tomcat with either Sun’s Java implementation or the OpenJDK implementation of Java.
Because Tomcat version 6 was included in Ubuntu 9.04, installing a working Tomcat server is reasonably straightforward. However, before we can start installing Tomcat itself, we must first install Java.
Install tomcat 6 in ubuntu 9.04
sudo apt-get install tomcat6 tomcat6-admin tomcat6-common tomcat6-user tomcat6-docs tomcat6-examples
This command downloads and install the following packages
tomcat6 : Servlet and JSP engine
tomcat6-admin : Admin web applications
tomcat6-common : Common files
tomcat6-user : Tools to create user instances
tomcat6-docs : Example web applications
tomcat6-examples : Example web applications
To start, stop, restart and get the server status
Start tomcat server
sudo /etc/init.d/tomcat6 start
Stop tomcat server
sudo /etc/init.d/tomcat6 stop
Restart tomcat server
sudo /etc/init.d/tomcat6 restart
Get tomcat server status
sudo /etc/init.d/tomcat6 status
After installation type http://localhost:8080 or http://serverip:8080/examples/servlets/ in your browser.Now you should see tomcat welcome page
* To enable admin web based features add the following lines to your /etc/tomcat6/tomcat-user.xml
<user name="admin" password="secret_password" roles="manager,admin"/>
* you should be able to see your manage page here http://your_ip_goes_here:8080/manager/html
* log in with the name and password you just set in /etc/tomcat6/tomcat-user.xml
* ls /var/lib/tomcat6 directory.
* you should see these directories conf, logs, webapps, work
* webapps is where your servlets will go ( or at least a xml file that points to them )
* as a test download this war file http://simple.souther.us/SimpleServlet.war
* then use the tomcat management page and select war file to deploy ( in teh deploy section) to upload this file to your server
* optionally just wget http://simple.souther.us/SimpleServlet.war directly to the webapps folder
* tomcat should recognize the war file and expand it with everything you need
* browse to http://serverip:8080/SimpleServlet/
Change tomcat server to run on port 80
If you want to Change tomcat server to run on port 80 follow this procedure
You need to edit the /etc/tomcat6/server.xml file
Now replace the part that says Connector port=”8080? with Connector port=”80?
Save and exit the file
Restart tomcat server with the following command
sudo /etc/init.d/tomcat6 restart