Sun Java System Application Server Enterprise Edition 8.1 2005Q1 Upgrade and Migration Guide |
Chapter 7
Migrating a Sample Application - an OverviewThis chapter describes the process for migrating the main components of a typical J2EE application from Sun ONE Application Server 6.x to Sun Java System Application Server Enterprise Edition 8.1. This chapter highlights some of the problems posed during the migration of each type of component and suggests practical solutions to overcome such problems.
For this migration process, the J2EE application presented is called iBank and is based on the actual migration of the iBank application from Sun ONE Application Server 6.x to Application Server 8.1. iBank simulates an online banking service and covers all of the aspects traditionally associated with a J2EE application.
The major points of the J2EE specification covered by the iBank application are:
- Servlets, especially with redirection to JSP pages (model-view-controller architecture)
- JSP pages, especially with static and dynamic inclusion of pages
- JSP custom tag libraries
- Creation and management of HTTP sessions
- Database access through the JDBC API
- Enterprise JavaBeans: Stateful and Stateless session beans, CMP and BMP entity beans
- Assembly and deployment in line with the standard packaging methods of the J2EE application
The iBank application is presented in detail in Appendix A, "iBank Application Specification."
Preparing for Migrating the iBank ApplicationBefore starting the migration process, it in important to understand the differences in the deployment descriptors. For detailed information, see Migrating Deployment Descriptors.
Choosing the Target
To start, choose Sun Java System Application Server Enterprise Edition 8.1 as the target migration server. Install the server in the migration environment. For step-by-step instructions on how to install the software, see the Sun Java System Application Server Enterprise Edition 8.1 Installation Guide.
If you are using Migration Tool for Sun Java System Application Server 8.1 to migrate the components, install the tool. The Migration Tool can be downloaded from the following location:
http://java.sun.com/j2ee/tools/migration
For information on how to use the Migration Tool for Sun Java System Application Server 8.1, see the Migration Tool online help. The iBank application is bundled with the tool.
Identifying the Components of the iBank Application
The iBank application has the following directory structure:
- /docroot contains HTML, JSP’s and Image files in its root. It also contains the source files for servlets and EJBs in the sub-folder WEB-INF\classes following the package structure com.sun.bank.*. A war file is generated using this directory.
- /session contains the source code for the session beans following the package structure com.sun.bank.ejb.session. This directory forms the EJB module for the session beans.
- /entity contains the entity beans following the package structure com.sun.bank.ejb.entity. This directory would form the EJB module for entity beans.
- /misc contain the sql scripts for the database setup.
Manual Steps in the iBank Application MigrationMost of the migration is done by the Migration Tool. There are some aspects of migration that must be done manually. These steps are documented in the Migration Tool’s user’s guide and the documentation for the iBank sample application.
Configuring Database Connectivity
In order to deploy an application to the target server, you must add a connection pool, add a JDBC resource and a persistence manager.
This section discusses the following topics:
Adding a Connection Pool
A JDBC connection pool is a group of reusable connections for a particular database. Because creating each new physical connection is time consuming, the server maintains a pool of available connections to increase performance. When an application requests a connection, it obtains one from the pool. When an application closes a connection, the connection is returned to the pool.
Use the asadmin create-jdbc-connection-pool command to add a connection pool to the server. The syntax of the command is given below.
asadmin create-jdbc-connection-pool
--user admin_user
--password admin_password
--host localhost
--port portno
--datasourceclassname dsclassname
--property User=ibank_user:Password=ibank_user:URL_PROP=db_url TMBwhere, dsclassname is:
URL_PROP is:
db_url is:
- jdbc:oracle:thin:@ORACLE_HOST:1521:SID for Oracle, where ORACLE_HOST is the machine name/IP address on which the database is installed, and SID is the System ID of the Oracle database.
- jdbc:pointbase:server://POINTBASE_HOST:9092/migration-samples for Pointbase, where POINTBASE_HOST is the machine name/IP address on which the database is installed. This will be localhost in most cases.
Adding a JDBC Resource
A JDBC resource (data source) provides applications with a means of connecting to a database. Before creating a JDBC resource, you must first create a JDBC connection pool.
Use the asadmin create-jdbc-resource command to add resource.
asadmin create-jdbc-resource
--user admin_user
--password admin_password
--host localhost
--port portno
--connectionpoolid TMB jdbc/IBankAdding a Persistence Manager
A persistence manager is required for backward compatibility. To run on version 7 of the Application Server, a persistent manager resource was required for applications with container-managed persistent beans (a type of EJB component).
Use the asadmin create-persistence-resource command.
asadmin create-persistence-resource
--user admin_user
--password admin_password
--host localhost
--port portno
--connectionpoolid TMB
--factoryclass com.sun.jdo.spi.persistence.support.sqlstore.impl.PersistenceManagerFactoryImpljdo/pmfAssembling Application for Deployment
Application Server primarily supports the J2EE model wherein applications are packaged in the form of an enterprise archive (EAR) file (extension .ear). The application is further subdivided into a collection of J2EE modules, packaged into Java archives (JAR, extension .jar) for EJBs and web archives (WAR, extension .war) for servlets and JSPs.
All the JSPs and Servlets must be packaged into WAR file, all EJBs into the JAR file and finally the WAR and the JAR file together with the deployment descriptors in to the EAR file. This EAR file is a deployable component.
Using the asadmin Utility to Deploy the iBank Application on Application Server
The last step is to deploy the application on Sun Java System Application Server Enterprise Edition 8.1. The process for deploying an application is described below:
The Sun Java System Application Server Enterprise Edition 8.1 asadmin command includes a help section on deployment that is accessible from the Help menu.
The command line utility asadmin can be invoked by executing asadmin.bat file in Windows and asadmin file in Solaris Operating Environment that is stored in Application Server’s installation's bin directory.
At asadmin prompt, the command for deployment looks like this:
asadmin> deploy -u username -w password -H hostname -p adminport absolute_path_to_application
After restarting the Application Server, open a browser and go to the following URL to test the application:
http://<machine_name>:<port_number>/ibank
When prompted, enter one of the available user names and passwords. The main menu page of the iBank application displays.