Tutorials : Run a Background Process in a Web Container Using Spring and ActiveMQ :

Building the Code

Download and install all the software mentioned in the "Requirements." Also download and extract the source code into any directory you like. Be sure that you have defined the environment variable as CATALINA_HOME which points to any directory where Apache Tomcat is installed. In the example case, it is:

	C:\code\mailsender_src>set CATALINA_HOME
	CATALINA_HOME=C:\jakarta-tomcat-5.0.28
Now, make sure that MySQL server is installed properly and launch it. After that, create a database user and create a database itself. To do this, run the following commands (start in the directory where you unpacked all source code):

	C:\code\mailsender_src>cd setup

	C:\code\mailsender_src\setup>mysql
	Welcome to the MySQL monitor.  Commands end with ; or \g.
	Your MySQL connection id is 2 to server version: 4.1.15

	Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

	mysql> source db_init.sql
	Database changed
	Query OK, 1 row affected (0.03 sec)

	Query OK, 1 row affected (0.00 sec)

	mysql> source mailsenderdb.sql
	ERROR 1049 (42000): Unknown database 'mailsenderdb'
	Query OK, 0 rows affected, 1 warning (0.00 sec)

	Query OK, 1 row affected (0.00 sec)

	Database changed
	Query OK, 0 rows affected, 1 warning (0.16 sec)

	mysql> exit
	Bye

	C:\code\mailsender_src\setup>mysqladmin reload
Now launch the following commands:

	C:\code\mailsender_src\setup>cd ..

	C:\code\mailsender_src>ant deploy
	Buildfile: build.xml

	compwar:
	     [echo]  **** Compiling Mailsender WAR
	    [mkdir] Created dir: C:\code\mailsender_src\build\WEB-INF\classes
	    [javac] Compiling 12 source files to C:\code\mailsender_src\build\WEB-INF\classes

	prepwar:
	     [echo]  **** Preparing Mailsender WAR
	     [copy] Copying 1 file to C:\code\mailsender_src\build\WEB-INF\classes

	packwar:
	     [echo]  **** Packing Mailsender WAR
	    [mkdir] Created dir: C:\code\mailsender_src\dist
	      [war] Building war: C:\code\mailsender_src\dist\mailsender.war

	all:

	deploy:
	     [echo]  **** Deploying Mailsender WAR
	     [copy] Copying 1 file to C:\jakarta-tomcat-5.0.28\webapps

	BUILD SUCCESSFUL
	Total time: 4 seconds		
That's it! You're ready to go! Launch Tomcat (if you haven't already), and wait while it starts.

Trying an Example

To test the demo code, open your favourite browser, and go to http://localhost:8080/mailsender/. You will see a link there to a "list all users" page. Follow it, and you will see all the users from the database (which means you will see nothing, because there are no records in the database yet).

Using the "add new" link, add a couple of users. You should them all on the "list all users" page. Real testing is just one click away: click "mail all users." In few seconds, you should see a confirmation page saying that mailing just started. And it really did. You can continue browsing pages, but the real mailing will be running. Depending on the amount of added users and your connection with the mail server, the real mailing process may take some time. In Tomcat's logs, you will be able to see some debug information, giving the approximate information on when you started mailing, how long did it take to return control back to the Web page, and how long the mailing itself lasted.

Power and Flexibility

This example shows the power of the Spring Framework and the flexibility of ActiveMQ integration. If you've never tried JMS before, this is a solid real-life example of how you can utilize it in your applications. You are no doubt thinking of at least a few ways in which using JMS can make your applications faster and smarter.

Related Resources

How to Add Java Applets to Your Site

New on the Java Boutique:

New Review:

Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

New Applet:

Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

Elsewhere on internet.com:

WebDeveloper Java
Lots of Java information on webdeveloper.com

WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.

ScriptSearch Java
Hundreds of free Java code files to download.

jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.