Duke's Bookstore Sample Application for Enterprise Edition

  Samples Index

 
Duke's Bookstore Sample Application for Enterprise Edition
 

This document describes how to utilize the Duke's Bookstore sample application in conjunction with Sun Java (tm) System Application Server Enterprise Edition 8.1 2005Q1.

This sample application document contains the following sections:

Overview

The Duke's Bookstore sample application illustrates the tasks involved in programming using Java Server Pages (JSP). This application allows users to retrieve available books from a database table, displays details of the book, add and remove books to a shopping cart and check out the books. The Duke's Bookstore implements the Model-View-Controller design pattern and database helper object for accessing database.
 

Compiling and Assembling the Application



This section contains instructions to build and assemble the Duke's Bookstore sample application from scratch using Command Line Interface (CLI). See the Sample Application Build Facility document for details on using asant facility to quickly perform these tasks.
     
  • To rebuild the sample as J2EE module, do the following:
    •  
    • Go to the ee-samples/failover/apps/dukesbookstore directory

    •  
    • Execute the command <install_dir>/bin/asant

    • The default target core will be executed to compile java files and rebuild the EAR file.
       

Once you have re-created the sample application from scratch proceed to Deploying the Sample Application.

Deploying the Sample Application

In this section, you will learn how to deploy the Duke's Bookstore sample application.

            Select one of the following approaches to deploying the application:

    • Command-Line based Deployment describes how to manually register the application in Sun Java (tm) System Application Server using a Command Line Interface (CLI). This is the fastest means of deploying the sample application.

    •  
    • GUI-based Deployment describes how to use the Sun Java (tm) System Application Server Administration Tool to deploy the sample application.

    •  


    Command-Line based Deployment

    Since a complete EAR file is supplied, the fastest means of setting up the application is to use the command line utilities described in this section.

    The pre-built dukesbookstore.ear file is a Enterprise Archive (EAR) file.

    Deploying the pre-built dukesbookstore.ear file is simple. Deploy either Using the asant script or by Using the asadmin command.
     

    Using the asant script

    Please start the pointbase server, if not started.
    If you choose to use the PointBase database, more details see Using PointBase with Samples.
    If you choose to use the Oracle database, see Using Oracle database.

    Execute the following steps:

       
    1. Go to the root directory of the sample
    2. cd <install_dir>/samples/ee-samples/failover/apps/dukesbookstore

       
    3. Run asant using deploy task
    4. <install_dir>/bin/asant deploy

    Note If you run asant deploy for the first time, you'll be asked to enter your Sun Java (tm) System appserver host name, admin port, admin user, password and cluster name. The subsequent runs of asant will get this information from a properties file create after the first time you ran asant deploy


    Using the asadmin command
       
    1. Go to the root of the sample directory
    2. cd <install_dir>/samples/ee-samples/failover/apps/dukesbookstore

       
    3. Execute asadmin to deploy application to the local application server instance. For example:
    4. <install_dir>/bin/asadmin deploy -user <adminuser> -password <adminpassword> --host <DAShost> --port <DASport> --availabilityenabled=true --target <cluster-name> dukesbookstore.ear


    Where <adminuser> is the Domain Administration Server's admin username, <adminpassword> is the admin user's password, <host> is the machine on which Domain Administration Server is installed and running, <port> is port at which Domain Administration Server is running and target> is the application cluster on which the sample application is to be deployed.

    If you would like to verify the registration of the application, you may proceed to Verifying Deployment. Otherwise, proceed to Running the Sample Application.



    GUI-based Deployment

    Since a pre-built Enterprise Archive (EAR) file for the sample application is included with the application server, you can use the Sun Java (tm) System Application Server Administration Tool to quickly deploy it to the Application Server.

       
    1. From your web browser, access the Sun Java (tm) System Application Server by entering the URL. For example:
    2. https://<DAShost>:<DASport>
    3. Enter the server administrator's username and password to access the admin server.
    4. On the left panel, navigate the tree by clicking on the following:
    5. Cluster -> <cluster-name>
    6. On the right panel, the Applications tab will be pre-selected. In the " --New--" drop down list select "Enterprise Application". The "Deployment Page" will load in the right frame.
    7. Set "Upload" to "Yes" and click on `Browse' to select the .ear file (from disk) to be deployed (dukesbookstore.ear) Click `Next' on the top right hand corner of the frame. .
    8. Enter the application name as dukesbookstore. Enable "Availability" checkbox and add a target cluster to deploy the application on from the displayed list in the "Targets" section.
    9. Click OK


      If the deployment succeeds, you will see the `Enterprise Applications' panel and under `Deployed Enterprise Applications' you will see the dukesbookstore application as deployed.



Verifying Deployment

As an optional step, you can use the Sun Java (tm) System Application Server Administration Tool to verify that the application has been registered. Otherwise, proceed directly to Running the Sample Application.

To verify the registration of the application, do the following:

Execute the command asadmin list-components to display applications deployed with a server instance.

<install_dir>/bin/asadmin list-components --user <adminuser> --password <adminpassword> --host <DAShost> --port <DASport> <clustername>

For example:

<install_dir>/bin/asadmin list-components --user admin --password admin123 --host localhost --port 4849 cluster1

You should see output similar to what is displayed below:

dukesbookstore <j2ee-application>




Undeploying the Sample Application

    To undeploy the application, do the following:

  • Go to the ee-samples/failover/apps/dukesbookstore directory

  •  
  • Execute the command asant undeploy

  •  
  • To undeploy the jdbc datasource, execute the command asant undeploy-sql

  •  


Registering Resources



JDBC resources required by this sample application are automatically configured when the application is deployed using asant deploy. If however, you are delpoying the sample application using the asadmin commands, you need to create the JDBC resources manually with the asadmin command. Please start your database server, if not started.  Now execute the following steps to register resources if you already have a connection to any database:

JDBC connection pool

asadmin create-jdbc-connection-pool --host <DAShost> --port <DASport> --user <adminuser> --password
<adminpassword> --datasourceclassname <datasource classname> --property
User=<database username>:Password=<database password>:<url-property>="<database jdbc url>"  --target <cluster-name>  bookstorePool

In case of PointBase, please use DatabaseName as <url-property>. You will need to escape ":" and "/", in <database jdbc url> . An example of <database jdbc url> is
"jdbc\:pointbase\:server\:\/\/localhost\:9092\/sun-appserv-samples".

JDBC resource

- JNDI name should be "jdbc/BooksDB" as the name is used in the deployment descriptor

asadmin create-jdbc-resource --host <DAShost> --port <DASport> --user <adminuser> --password <adminpassword>
--connectionpoolid  bookstorePool jdbc/BooksDB

 

For more information on using PointBase, please refer to the Using PointBase with the Samples document.



Running the Sample Application



In order to run the sample application, you must first do the following:

You are now ready to run the sample application by doing the following: On your browser go to the url : http://<Whost>:<Wport>/dukesbookstore/enter

Where Whost is the hostname of webserver having the loadbalancer plugin setup and configured and Wport is the port at which that webserver is running. The following images are from running the sample.
 


Figure 1 - Duke's Bookstore: "Start Shopping" link
 
 


Figure 2  -  Duke's Bookstore: Books Catalog
 
 


Figure 3  -  Duke's Bookstore: Shopping Cart
 

Now, stop the instance that served the request. (See Running the sample Applications section here to see how to do this). After the instance is shut down completely, click on the `Check Out' link. Your cart contents will be retreived by the second instance and the correct purchase amount will be displayed.


 


Figure 4  -  Duke's Bookstore: Cashier
 



Generating javadocs

To better understand sample application source code, you may refer to the related javadocs.

To generate javadocs, run the following command from .../ee-samples/failover/apps/dukesbookstore:

        asant javadocs

After javadocs are generated, you may access them at samples/ee-samples/failover/apps/dukesbookstore/javadocs/index.html.
 
 

Troubleshooting


  • If you encounter problems when running the application, review the log files at <install-dir>/domains/domain1/logs/server.log and <install_dir>/nodeagents/<agent-name>/<instance-name>/logs/server.log (also check which instance served the request) to learn what exactly went wrong.

  •  
  • Check to see if the database is running.

  •  
  • To reset your database, run the command asant sql if using PointBase

  •  
  • To redeploy the sample, please undeploy the sample first. Use the commands asant undeploy, asant clean and then asant all.

  •  
 

Copyright © 2004 Sun Microsystems, Inc. All rights reserved.
Last Updated June13, 2004