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
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.