Free Software Fast Development

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Free Software Fast Development as PDF for free.

More details

  • Words: 11,847
  • Pages: 60
Kick-start your Java apps, Part 1: Free software, fast development Skill Level: Intermediate Sing Li ([email protected]) Author Wrox Press

27 Feb 2006 To create, test, and deploy a Web-based application or Web service rapidly, you need a proven relational database, a standards-compliant Web application server, and a flexible IDE. Ideally, all these software packages are production-tested, simple to obtain, easy to use, and well integrated with one another. This tutorial shows you how to use IBM-backed open source and free software to kick-start your Java™ Web-based application development. You'll learn exactly where to download such components, install them, and get them working for you today.

Section 1. Before you start Combine the proven power of the industrial-strength DB2® database with the versatility of the J2EE 1.4 compatible WebSphere® Application Server, then throw in the popular open source Eclipse IDE -- and you can have a highly productive environment to create, test, and deploy Web-based applications and Web services. This is not a secret, and professionals in large IT projects have been enjoying this proven collection of software for years. But until now, the development community at large has not had general access to these tools. Times have changed, though, and today full-featured editions of the servers and IDE in this collection are only a download away -- free of charge and free of license fees -- with full support from IBM. Java developers can now freely use the open source Eclipse IDE to create and test applications and Web services and then install them to WebSphere Application Server Community Edition (referred to throughout this tutorial as Application Server) and DB2 Express-C 9 for production deployment.

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 1 of 60

developerWorks®

ibm.com/developerWorks

About this tutorial This tutorial takes you along the shortest path to getting these software components -- called the Kick-start your Java apps suite -- downloaded and working, letting you discover their infinite possibilities while creating your next programming masterpiece. It assists you in installing and setting up the components and reveals how they are designed to work with one another. Toward this goal, the tutorial does not attempt to cover all possible features or configuration options available for the individual packages. You'll be able to discover each product's rich feature set at your own pace as you continue exploration and development. The Kick-start combo With the Kick-start your Java apps suite, IBM has put together a powerful combination of freely available software components for data, deployment, and development: •

DB2 Express-C 9 database server



WebSphere Application Server Community Edition



The Eclipse IDE

You're not locked in to using these packages in combination; each works with a variety of other open-standards based components. You can use Eclipse with other (even non-Java) application servers and other databases. Application Server doesn't require either DB2 Express-C 9 or Eclipse. And DB2 Express-C 9 can fit into development and deployment environments other than Eclipse and Application Server. But, in ways you'll understand fully from this tutorial, using the whole, tightly integrated suite can gain you a wealth of advantages.

This tutorial guides you through: • Downloading and installing DB2 Express-C 9 • Creating databases and manipulating data with tools in DB2 Express-C 9 • Downloading and installing Application Server • Managing Application Server through the Web console • Connecting Application Server to DB2 Express-C 9 using a JCA 1.5 connector • Downloading and installing Eclipse • Installing the Eclipse Web Tools Platform (WTP) server adapter for Application Server (formerly called the Application Server plug-in for Eclipse) • Managing, browsing, and editing DB2 Express-C 9 data through the Eclipse IDE

Free software, fast development Page 2 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

• Testing Web applications in Eclipse with embedded control of Application Server instances • Rapidly developing and testing a JSP/JSTL Web application in Eclipse, with data access to DB2 Express-C 9, and deploying it to Application Server • Configuring Application Server as a general Web server on the Internet By the end of the tutorial, you'll have hands-on working experience with all the software tools and have a simple data-driven Java application deployed on Application Server.

Prerequisites You should be familiar with Java development in general and server-side Java development specifically. This tutorial assumes that you understand the general operations of a relational database and are familiar with basic J2EE concepts, such as deployment descriptors and WAR archives. Experience working with an application server and relational database is beneficial but not mandatory.

System requirements To follow along and try out the code for this tutorial, you need a working installation of Sun's JDK 1.4.2_12 or the IBM 1.5.0 SR3 JDK. The recommended system configuration for trying out the tutorial is: • A system supporting the JDK/JRE listed above with at least 1GB of main memory (2GB recommended) • At least 900MB of disk space to install the software components and examples The instructions in the tutorial are based on a Windows operating system. All of the tools covered in the tutorial also work on Linux® and UNIX® systems.

Section 2. Overview The Kick-start your Java apps suite of software includes the following products and versions, which are designed to work well together: • A database server: DB2 Express-C (currently at UDB 9.1 level)

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 3 of 60

developerWorks®

ibm.com/developerWorks

• An application server: WebSphere Application Server Community Edition (currently release 1.1.1) • An IDE: Eclipse (currently version 3.2 for use with the WTP server adapter V1.1.1 for Application Server) You can download all of these packages without cost or license fees. Figure 1 illustrates how these products fit together for server-side Java application development: Figure 1. Eclipse, Application Server, and DB2 Express-C 9 working together

Code, test, and debug in the Eclipse IDE As Figure 1 illustrates, you can write, test, and debug your Java applications using the Eclipse IDE. DB2 Express-C 9 integrates with the Eclipse IDE to provide you with easy access to your database content as well as metadata information, such as schema, table, and field names. You can control instances of Application Server from the Eclipse IDE to deploy and test your application components rapidly. In addition to working with them together as a concept-to-production toolkit, you can use each of these products alone or with a myriad of available interfacing technology. For example, as you can see in Figure 1, you can access DB2 Express-C 9 through C/C++, Python, Ruby, and Perl APIs, among others.

Free software, fast development Page 4 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Deploy applications on Application Server and DB2 Express-C 9 Once you have tested your application in Eclipse, you can deploy it into production running inside Application Server. Application Server is a J2EE 1.4 compatible application server that can host applications constructed from Web components such as JavaServer Pages (JSP), servlets, and Enterprise JavaBeans (EJB). You can use Eclipse and Application Server with modern, open source, lightweight frameworks such as the Spring Framework and Hibernate. Application Server also doubles as a general-purpose Web server for static HTML pages and graphic files. Users can access your application through a browser pointed to the Application Server. Your production applications, hosted on Application Server, can use DB2 Express-C 9 to store any application data. DB2 Express-C 9 supports Java-based data access through JDBC. It includes a fully licensed, high-performance type 4, 100% JDBC driver. This driver works very well with 100% Java applications requiring relational database management system (RDBMS) access. Application Server has built-in support for J2EE Connector Architecture (JCA) 1.5 resource adapters and can make use of the DB2 Express-C 9 JDBC driver to provide data persistence for any hosted application.

Section 3. Introducing DB2 Express-C 9 As a member of the DB2 Universal Database™ family, DB2 Express-C 9 is the free-of-charge edition of the modern version of a "very big iron" RDBMS. This section introduces DB2 Express-C 9 , and the following three sections show you how to download, install, and operate it. If you are already committed to a different database that you'd like to use with Eclipse and/or Application Server in this tutorial, feel free to skip these sections.

The robust, proven, and scalable database server The core technology of DB2 has existed as an IBM product since 1983 and is a mature and robust database engine. International enterprises use DB2 today to maintain some of the largest databases on servers that run around the clock. The DB2 server is designed from the ground up to handle virtually unlimited scalability. It can handle increasing demand by scaling up (by adding more CPU and memory to one server) or scaling out (by adding more servers over an interconnection network). On a development system where the test databases are small, you can have multiple instances running on one machine; when building very large database systems, you can have a cluster of multiple machines working together to run a Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 5 of 60

developerWorks®

ibm.com/developerWorks

single logical database instance.

Built-in management and business application features DB2 Express-C 9 is optimized for running on widely available, 32-bit microprocessor-based server hardware (with extensions for 64-bit CPUs) and has built-in self-monitoring, maintenance, and tuning features that take most of the tedious work out of maintaining a database server. It is especially cost-effective for small enterprise installations because it eliminates the need to retain full-time database administration staff. Transactions, XA distributed transactions, stored procedures, referential constraints, and triggers have been well-tested, built-in features of DB2 servers for over a decade.

Integration with XML data DB2 Express-C 9 has built-in capabilities for handling and working with XML data. XML documents are stored hierarchically into the columns of a table. DB2 Express-C 9 is the first version of DB2 Express-C that integrates native XML storage and XQuery capabilities. The hybrid relational and XML nature of DB2 Express-C 9 lets developers satisfy the XML data storage needs of modern Web services and systems based on service oriented architecture (SOA).

DB2 Express-C 9 can grow with your needs All the data content and schemas that you create using DB2 Express-C 9 are directly compatible -- without the need to perform any conversions -- with even the largest member of the DB2 Universal Database family. Should your data needs grow in the future, DB2 can grow with your needs. There is practically no limit to the size of the databases that you can create and manage with DB2 Express-C 9. Depending on your application and database design, a 32-bit server equipped with 4GB of main memory can readily handle databases tens of gigabytes in size. A restriction with DB2 Express-C 9 is the memory size of the hardware on which you can run the server. The limit of 4GB of physical memory corresponds to the typical maximum addressable memory space for many 32-bit operating systems. If your needs grow past this range of capacity, chances are you need to look beyond 32-bit server hardware and operating systems anyway. The DB2 Universal Database family of products provides a smooth, scalable growth path without the need to tackle costly and often risky data conversion.

Free software, fast development Page 6 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Section 4. Downloading and installing DB2 Express-C 9 In this section, you'll download and install DB2 Express-C 9 and build a sample database. The instructions in this tutorial cover the installation of DB2 Express-C 9 on 32-bit Windows-based systems only.

Downloading DB2 Express-C 9 To download DB2 Express-C 9, go to Download: DB2 Express-C 9. If you do not yet have an IBM ID, you need to register before downloading DB2 Express-C 9. Registration is free and takes just minutes. The file you download, named db2exc_91_WIN_x86.zip, is in a compressed ZIP format. Before you proceed any further, you need to be aware that DB2 Express-C 9 uses the operating system's authentication system to authenticate users. In the case of Windows, it uses the name of the logged-in Windows user. Any tables that you build in the database are created under a schema with that username. For this tutorial, make sure you are logged on to Windows as the same user who will create the application. This eliminates the need to assign a specific level of privileges for your explorations.

Installing DB2 Express-C 9 Unzip the downloaded file, db2exc_91_WIN_x86.zip, to a directory. Then run SETUP.EXE to begin installing DB2 Express-C 9. The DB2 Express-C 9 setup Launchpad screen, shown in Figure 2, is displayed: Figure 2. Setup Launchpad screen for DB2 Express-C 9 installer

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 7 of 60

developerWorks®

ibm.com/developerWorks

Read the installation prerequisites, verify that your hardware and software satisfy them, and read the release notes. Then click Install Product. Follow the wizard's directions to install DB2 Universal Database Express. When prompted, select the Typical installation type, shown in Figure 3. This option takes up to 500MB of disk space. Figure 3. Selecting typical installation for DB2 Express-C 9

Free software, fast development Page 8 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

The next screen prompts you for an installation directory. The default is the Program Files\IBM\SQLLIB\ directory on the system drive. This tutorial refers to this directory as the SQLLIB directory.

Installing the DB2 system services The next wizard screen sets up the user authorized for the DB2 Administration Server (DAS). To keep things simple for this development system, select Use the same user name and password for the remaining DB2 services, as shown in Figure 4: Figure 4. Windows user authentication assignments for DB2 installation

In the future, when you install production server instance(s), you should consult the DB2 Administration Server User Guide to determine the security scenario most applicable to your installation.

Completing the installation Follow the remaining steps in the installation wizard, accepting the defaults. This configures an instance called DB2 on your system and sets its default connection protocol to TCP/IP.

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 9 of 60

developerWorks®

ibm.com/developerWorks

After the wizard completes the installation, you'll notice: • A new green DB2 tray icon (lower right-hand side of the screen next to the system clock). • A new menu named IBM DB2 with a variety of administrative and user tools (under the Windows Start menu). • The DB2 First Steps window appearing on your desktop, as shown in Figure 5: Figure 5. DB2 First Steps window

Creating the sample database The application example that you'll work on later in this tutorial (see Creating a Web application with Eclipse and WTP) makes use of a sample database provided by the DB2 Express-C 9 installation. To create this sample database, first click the Database Creation link on the left-hand side of the First Steps window. Then click the Create the SAMPLE Database button. The wizard proceeds to create a database called SAMPLE.

Section 5. Understanding the DB2 Express-C 9 Free software, fast development Page 10 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

components This section covers the DB2 Express-C 9 components you installed in the preceding section (Downloading and installing DB2 Express-C 9). The components can be grouped into two categories: • DB2 system services • DB2 tools and utilities for administrators, users, and developers

DB2 system services DB2 Express-C 9 is a database server that can process many data-access and administration requests simultaneously. These requests can originate from the local machine and any number of client machines accessing the server. Requests are received through the network and processed on the server machine(s) by a set of collaborating system services. Table 1 describes the system services that are installed on your system: Table 1. DB2 Express system services on Windows installations Service name

Executable name

Description

DB2 System Controller

db2syscs

The main controller that provides access to persistent data and manages storage allocation, memory-buffer pools, and so on. On Windows systems, this controller spawns threads to perform work; on Linux systems, it can spawn additional processes to perform its work.

DB2 Governor

db2govds

Statistics collector for DB2 applications.

DB2 JDBC Applet Server

db2jds

Support for JDBC.

DB2 License Server

db2licd

Monitors and enforces DB2 software license policies.

DB2 Security Server

db2sec

Authentication server for clients.

DB2 Remote Command db2rcmd Executor

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Handles remote commands for the DB2 instance.

Page 11 of 60

developerWorks®

ibm.com/developerWorks

DB2 Database Administration Server

db2dasrrm

Provides administration service functionality.

DB2 Management Service

db2mgmtsvc

Manages registry for backward compatibility with earlier versions.

DB2 Fence Mode Process

db2fmp

Executes fenced stored procedures and user-defined functions outside the engine's address space (for security implementations).

DB2 system tray manager

db2systray

Not strictly a service, this provides a tray icon on the Windows desktop for quick access to DB2 utilities.

If you examine the Windows Task Manager's task list (type Ctrl-Alt-Delete to invoke the Task Manager), you'll see several of these services running.

DB2 tools for administrators, users, and developers Other than system services, the typical DB2 installation includes a rich set of tools. Figure 6 provides an overview: Figure 6. Tools and developer support for DB2 Express-C 9

Free software, fast development Page 12 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

In Figure 6, the tools for DB2 Express-C 9 can be generally classified as command-line based or GUI-based.

Development support Java development support in DB2 Express-C 9 includes access through JDBC (a type 4 driver and a type 2 driver are available) and SQLJ static embedded SQL. Windows .NET developers can use the add-in support for development using the Microsoft Visual Studio .NET development environment. Open source developers can take advantage of the support for development using popular scripting environments, including Perl, PHP, Python, and Ruby.

GUI-based tools Table 2 briefly describes some of the GUI tools provided with DB2 Express-C 9. You can explore these tools at your leisure: Table 2. GUI tools included with DB2 Express-C 9 installation Tool DB2 Control Center

DB2 Information Center

DB2 Development Center

DB2 Replication Center

Access to tool •

IBM DB2 > General Administration Tools > Control Center



Right-click the tray icon and select DB2 Control Center



db2cc from command line



IBM DB2 > Information > Information Center



db2ic from command line



IBM DB2 > Development > Development Center



db2dc from command line



IBM DB2 > General

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Description Examines instances, databases, schemas, tables, etc. Can view, add, or modify objects and perform most administration tasks. Also launches other GUI-based tools.

Launches browser to a Web site containing comprehensive up-to-date documentation and information on the DB2 server.

IDE tool that creates, builds, and deploys stored procedures and user-defined functions.

Sets up replication environment for DB2 to DB2 replication. Replication enables you to

Page 13 of 60

developerWorks®

ibm.com/developerWorks

Administration Tools > Replication Center

DB2 Task Center



db2rc from command line



IBM DB2 > General Administration Tools > Task Center



db2tc from command line

maintain up-to-date copies of your important data.

Tool that schedules scripts (DB2 or OS) and notifies users of a task outcome.

See the DB2 documentation for information on other GUI tools.

Section 6. Working with the DB2 Command Line Processor Some system administrators prefer a command-line interface over a GUI tool for the purpose of server control. Many tedious custom administrative tasks can be automated by creating scripts that execute against a command-line interface. This section explores the command-line interface for DB2 Express-C 9.

The DB2 Express-C 9 Command Line Processor If you are more comfortable with a command-line interface to relational database servers than with a GUI tool, you'll feel right at home with DB2 Express-C 9's Command Line Processor (CLP). The DB2 CLP lets you work with the DB2 database using an interactive command-line interface with a rich set of commands. You can literally perform everything that you can do from the GUI tools by using the CLP. To start the CLP, select IBM DB2 > Command Line Tools > Command Line Processor from the Windows Start menu. Alternatively, assuming you have set up your environment PATH variable to include SQLLIB\BIN, you can use the following command: db2

Figure 7 shows the DB2 CLP's greeting screen: Free software, fast development Page 14 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Figure 7. Logging on to the CLP of DB2 Express-C 9

Data query with DB2 CLP The interactive CLP takes SQL commands as well as DB2-specific control commands. To connect to the SAMPLE database, type the following command: connect to sample

Figure 8 shows the result of this command. You are now connected to the SAMPLE database: Figure 8. Connecting to the SAMPLE database through the DB2 Express-C 9 CLP

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 15 of 60

developerWorks®

ibm.com/developerWorks

The SAMPLE database contains a table of employee information called EMPLOYEE. You'll use this table throughout the remainder of this tutorial. You can directly enter SQL queries against the table. Try the following: select * from employee where empno='000300'

The result is shown in the top half of Figure 9: Figure 9. Command-line SQL queries in an interactive CLP session

In Figure 9, the result is the record for Philip Smith, who has the employee number of 000300.

Free software, fast development Page 16 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Figure 9 also illustrates the query to find all the employees with an annual salary of $90,000 or more: select firstnme, lastname, salary from employee where salary > 90000

See Figure 9 for the result, showing four employees with salaries greater than $90,000. In addition to the standard SQL commands, many DB2-specific commands are available. You can use the ? command at any time to get help. To see the structure of the EMPLOYEE table, enter the following: describe table employee

This command shows the fields structure of the EMPLOYEE table, as shown in Figure 10: Figure 10. Using the DESCRIBE command to display table schema

The application you'll work through later in this tutorial makes use of the EMPLOYEE

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 17 of 60

developerWorks®

ibm.com/developerWorks

table.

Creating your own data tables through the DB2 CLP The DB2 CLP can take a text-based script file as input and execute each line of the script as if it were entered at the command line. The products.sql script file, found in the sql subdirectory of the code download for this article (see Download), is shown in Listing 1: Listing 1. The products.sql DB2 CLP script file for creating a table CONNECT TO SAMPLE; DROP TABLE PRODUCTS; CREATE TABLE PRODUCTS ( SKU CHAR(15) NOT NULL, DESCRIPTION VARCHAR(80) NOT NULL, PRICE DECIMAL(10,2), PRIMARY KEY(SKU) ); INSERT INTO PRODUCTS VALUES('LCD1020','20 inch LCD TV', 299.00); INSERT INTO PRODUCTS VALUES('CPU3818','PowerPC CPU', 200.00); INSERT INTO PRODUCTS VALUES('HDR2929','800 GB Hard Disk', 899.00);

This standard SQL script file connects to the SAMPLE database, creates a table called PRODUCTS, and places three rows in the table. The DB2 CLP can process this script. Just enter the following command: db2 -vf products.sql -t

Figure 11 shows the result of this command: Figure 11. Processing a DB2 command script file using the CLP

Free software, fast development Page 18 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

You can get more information on the options available with the CLP from the Information Center. You can also explore the newly created database visually with the Control Center. The next section examines another important engine for your Web applications: WebSphere Application Server Community Edition.

Section 7. Introducing WebSphere Application Server Community Edition WebSphere Application Server Community Edition (Application Server) is a J2EE 1.4 compatible application server and a member of the IBM WebSphere family of products. This section introduces you to Application Server's structure and functionality. If you prefer to use a different application server for the purposes of this tutorial, feel free to skip to Introducing the open source Eclipse IDE.

Server for J2EE 1.4 applications and Web services Application Server is a no-license-cost server that supports the production hosting of Web applications and Web services created to the J2EE 1.4 standard. This includes applications that can contain the following elements:

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 19 of 60

developerWorks®

ibm.com/developerWorks

• JSPs • Servlets • Custom Java coding • EJBs • Model-view-controller (MVC) frameworks • Lightweight development frameworks • JCA 1.5 resource adapters connecting to EIS or legacy systems • Other data-access components

Once a Geronimo The Application Server code is based on the popular Apache Geronimo project (see Resources). As such, it comes with the capability to integrate with a large body of open source technology. Moving forward, Application Server will continue to support tight integration with best-of-breed open source technology, such as the Apache Tomcat Web container and the ActiveMQ message broker. The AJP protocol This protocol is designed to enable the forwarding of requests for dynamic server contents (JSP and servlet) from an Apache Web server to an instance of a container for Java Servlets or JSPs. The first version of such a container was named JServ. Since then, however, Tomcat has taken over as the de facto open source standard in Web-tier containers.

Application Server has built-in support to interoperate with legacy CORBA systems. You can also use it to deploy and host Web services through its integration with Apache Axis (see Resources). And you can use Application Server as a general-purpose Web server to support the serving of static HTML pages and graphical images. For high-performance service of static Web assets, you can configure the Apache JServ Protocol version 1.3 (AJP13) protocol connector to enable Application Server to accept requests from an industry-standard Apache Web server (front end) (see The AJP protocol).

Application Server's open source pedigree Figure 12 shows the composition of Application Server. You'll recognize many open source server components: Figure 12. Application Server's open source server components

Free software, fast development Page 20 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Table 3 summarizes the open source server components shown in Figure 12: Table 3. The open source server components inside Application Server Server

Description

Apache Tomcat

Popular container for Web-tier components. Initially, Tomcat served as the reference container implementation for the latest JSP and Servlets specifications. Overwhelming support from the developer and user communities has made it the de facto standard in open source, Web-tier containers. Three version families of Tomcat are supported: 3.x, 4.x, and 5.x. Application Server integrates Tomcat 5.5. (See Resources for Tomcat's open source community Web site.)

ActiveMQ

Popular message broker that supports a rich set of transports. Supports the Java Message Service (JMS) 1.1 API. Includes a JCA 1.5 resource adapter and support for Message Driven Beans. (See Resources for ActiveMQ's open source community Web site.)

OpenEJB

An EJB container supporting the EJB 2.1 specification, including Container Managed Persistence (CMP) 2 and EJB Query Language (EJBQL). (See Resources for OpenEJB's open source community Web site.)

Apache Derby

Based originally on code from IBM's Cloudscape

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 21 of 60

developerWorks®

ibm.com/developerWorks

product, Apache Derby is a full-featured RDBMS created completely in Java code. Application Server currently uses Apache Derby as its own internal embedded database. (See Resources for Apache Derby's open source community Web site.)

Section 8. Downloading and installing Application Server This section walks you through downloading Application Server (and, optionally, some additional items that might enhance your configuration) and performing the installation.

Downloading Application Server To download Application Server 1.1.0.1, go to Download: WebSphere Application Server Community Edition V1.1.0.1. Important note: The instructions in this tutorial pertain to version 1.1.0.1 of Application Server. This version is significantly different from version 1.0. Be sure to use version 1.1.0.1 or later as you follow along with this tutorial.

The Application Server distribution you download is in Windows EXE format. The corresponding Eclipse WTP server adapter for Application Server (formerly called the Application Server plug-in for Eclipse) can be downloaded and installed using the Eclipse update manager. You'll perform those steps later in this tutorial (see Downloading and installing Eclipse).

Optional additional downloads In addition to the Application Server and WTP server adapter downloads, you might also want to download these items from the same site: • Application Server bundled with IBM JRE version 1.5.0 • Application Server sample applications These downloads are not mandatory, but they can be helpful for your configuration.

Installing Application Server

Free software, fast development Page 22 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

To install Application Server, run the downloaded EXE file on your system. The installation wizard prompts you for a directory for the installation. You can specify your own directory or accept the default. To start the server after installation, select IBM WebSphere > Application Server Community Edition > Start the server from the Windows Start menu. You should see a command console open that displays the server startup information, similar to Figure 13: Figure 13. A system console showing output from the Application Server startup

To verify the success of the installation, start the Administration Console by selecting IBM WebSphere > Application Server Community Edition > Administration Console from the Windows Start menu.

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 23 of 60

developerWorks®

ibm.com/developerWorks

This should start an instance of your browser, pointed to the login page for the Administration Console. The Administration Console is actually a Web application running inside Application Server. Figure 14 shows the login screen for the console: Figure 14. The login screen for the Application Server Administration Console

Instead of using the menu selection, you can always reach the Administration Console on a browser with the URL http://localhost:8080/console/. If you wish to explore the Administration Console, use the predefined username

Free software, fast development Page 24 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

system) and password (manager).

Section 9. Operating your Application Server As with DB2 Express-C 9, you can control the basic operations of your Application Server through either the Administration Console GUI or a command-line interface. This section describes the basic commands available through either user interface.

Starting the server To start the server, select IBM WebSphere > Application Server Community Edition > Start the server from the Windows Start menu. You can also change to the bin directory just below the Application Server installation directory (or add the bin directory to your PATH environment variable) and this command: startup

Stopping the server To stop the server, choose one of these three methods: • Log in to the Administration Console and select Shutdown from its menu on the left-hand side. • From the Windows Start menu, select IBM WebSphere > Application Server Community Edition > Stop the server. • Change directory to the bin directory just below Application Server installation directory (or add the bin directory to your PATH environment variable) and issue this command: shutdown

Obtain a list of installed applications On Application Server, installing applications to the server is called deployment. Applications that are deployed to Application Server are maintained by the server as configurations. To view the configurations deployed on the server, log on to the Administration Console (using system for username and manager for password) and Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 25 of 60

developerWorks®

ibm.com/developerWorks

select Application EARs, Web App WARs, EJB JARs, or Application Clients. You can also issue this command from a command line while you're in the bin subdirectory: deploy list-modules

Application Server prompts you for a username and password (use system and manager). This runs the command-line deployer tool and obtains module information on all the configurations installed on this server. Figure 15 shows the output from a list-modules command: Figure 15. Showing all configurations installed in a Application Server

In Figure 15, a configuration name preceded by a plus sign (+) indicates that it is installed and running. A configuration name without the + indicates that it is installed but not currently running.

Free software, fast development Page 26 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Section 10. Connecting Application Server to DB2 Express-C 9 In this section, you'll connect Application Server to DB2 Express-C 9. This lets any application that's hosted in Application Server access the SAMPLE database containing the EMPLOYEE and PRODUCTS tables that you created earlier in the tutorial (see Working with the DB2 Command Line Processor).

Deploying a resource adapter To connect the Application Server with DB2 Express-C 9, you need to create and deploy an instance of a JCA 1.5 resource adapter on Application Server that accesses your DB2 SAMPLE database. This resource adapter instance uses the DB2 Express-C 9 type 4 JDBC driver to access the SAMPLE database. A resource adapter already exists in Application Server (from an open source implementation called TranQL) that works with the JDBC driver. The DB2 JDBC driver is now distributed as a standard part of Application Server, located in the code repository. The action that you need to perform boils down to the following: 1.

Locating the DB2 Express-C 9 JDBC driver in the code repository of Application Server

2.

Creating a deployment plan to deploy the TranQL resource adapter, configured with the JDBC driver

Locating the DB2 Express JDBC driver in the Application Server repository First, log on to the Application Server Administration Console. Click Common Libraries in the left-hand menu. This shows all the entries in the code repository where Application Server keeps binaries of system and application components. Figure 16 shows the list of entries in the repository. You need to look for two entries -- one for the JDBC library JAR file and another for the license JAR file. Figure 16. Locating the DB2 JDBC driver and license JARs in Application Server repository

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 27 of 60

developerWorks®

ibm.com/developerWorks

The latest version of DB2 Express-C 9 requires the 9.1 JDBC drivers set. From the list of common libraries in the repository, you will find the JDBC library JAR and license JAR files in the following modules: • com.ibm.db2/db2jcc/9.1/jar • com.ibm.db2/db2jcc_license_cu/9.1/jar Now that you have confirmed their location and the associated module names, you can go ahead and use them to create a database pool.

Adding a system-wide database pool The TranQL JCA 1.5 resource adapter provides database pooling for all Application Server-hosted applications. To deploy the adapter, log on to the console and click Database Pools in the menu on the left-hand side. You should see the currently deployed database pools, as shown in Figure 17: Free software, fast development Page 28 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Figure 17. Displaying the currently configured database pools in Application Server

In Figure 17, the server-wide database pool called SystemDatasource accesses a Derby database that is used internally by Application Server. Click the Create a new database pool: Using the Geronimo database pool wizard option. Fill in the details of the pool with values shown in Table 4. This will involve the next few screens of the wizard. Table 4. Configuration for the Application Server database pool connecting to SAMPLE DB2 database Field

Value

Name of Database Pool

dwDatasource

Database Type

DB2

JDBC Driver Class

com.ibm.db2.jcc.DB2Driver

Driver JAR

CTRL-click or SHIFT-click to select both: com.ibm.db2/db2jcc/9.1/jar com.ibm.db2/db2jcc_license_cu/9.1/jar

DB User Name

Windows user name under which DB2 Express-C 9 is installed

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 29 of 60

developerWorks®

ibm.com/developerWorks

DB Password

Windows user's password for DB2 Express-C 9

Port

50000

Database

sample

Host

localhost

Leave the rest of the configuration empty, accepting the default values, and then click the Test Connection button. This causes Application Server to attempt to connect to the SAMPLE database. If the attempt is successful, you should see a screen similar to Figure 18: Figure 18. Successful test connect to the DB2 Express-C 9 database from Application Server

Viewing and deploying the plan The connection to DB2 Express-C 9 is now tested, but to access the data successfully from Application Server, you must create and deploy a deployment plan. This deployment plan can be generated for you automatically, by the wizard, based on your input. Follow these steps to view and then deploy the plan: 1.

Click the Show Plan button (see Figure 18). This will display the generated deployment plan, shown in Listing 2.

Free software, fast development Page 30 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

2.

developerWorks®

Click the Deploy button to deploy the plan.

Listing 2. The generated Application Server system-wide database pool deployment plan for the DB2 Express-C 9 database connection <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>console.dbpool <dep:artifactId>dwDatasource <dep:version>1.0 <dep:type>rar <dep:dependencies> <dep:dependency> <dep:groupId>com.ibm.db2 <dep:artifactId>db2jcc <dep:version>9.1 <dep:type>jar <dep:dependency> <dep:groupId>com.ibm.db2 <dep:artifactId>db2jcc_license_cu <dep:version>9.1 <dep:type>jar javax.sql.DataSource dwDatasource mypassword com.ibm.db2.jcc.DB2Driver sing jdbc:db2://localhost:50000/sample <single-pool> <max-size>10 <min-size>0 <match-one/>

If you select Database Pools again on the Web console menu, the display should now show the dwDatasource pool as a deployed system-wide database pool. Applications hosted in Application Server can now access the SAMPLE database by looking up the dwDatasource connection pool.

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 31 of 60

developerWorks®

ibm.com/developerWorks

Section 11. Introducing the open source Eclipse IDE The open source Eclipse IDE is one of the most popular IDEs for Java development in the world. Eclipse is supported by a huge global community of users, developers, and researchers. (See Resources for a link to the Eclipse community Web site.) This section gives you an introduction to Eclipse.

Open source users and developers community Eclipse is used daily by Java development teams across the world to code, debug, and test code bases that consist of up to millions of lines. Eclipse has features that are very attractive to developers in general and Java developers in particular, including: • Built-in smart editors for Java code, HTML, XML, and so on • Full syntax highlighting on all editors • Full syntax check as you enter your code • Context-sensitive code assists for supported programming languages, including dynamic API documentation lookup • Support for the development of standard Java applications, as well as J2EE targets, such as Web applications and Web services • Tight integration with popular version-control systems, such as Subversion and CVS • Tight integration with popular Java build tools, such as Apache Ant • Tight integration with popular Java unit-testing frameworks, such as JUnit • Ability to control, manage, and deploy applications to servers during the test and debug cycle • Tight integration with relational database sources through JDBC • One-click ability to find the declaration of a type or base type anywhere in the source code • One-click ability to look up all references to a type or symbol anywhere in the source code • Refactoring tools that assist in the often tedious, complex, and error-prone refactoring process This is just a partial list of the features of Eclipse. You'll likely discover even more useful features as you start coding with this workhorse IDE.

Free software, fast development Page 32 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Reusable GUI framework Eclipse's modular architecture encourages customization and code reuse. The Eclipse IDE's GUI is designed to be reusable, and many open source and commercial products have leveraged Eclipse's open source code base. The DB2 Express-C 9 Development Center is an example of a commercial product leveraging the Eclipse framework.

Plug-ins extend Eclipse beyond Java programming In addition to the GUI framework, Eclipse has a well-specified plug-in API and rich support for plug-in construction. This has created a foundation for an abundance of high-quality, third-party plug-ins that extend well beyond the realm of Java development. Eclipse plug-ins provide support for other popular development languages, such as C/C++, Python, and Ruby on Rails. Figure 19 illustrates the rich features and versatile composition of the Eclipse IDE: Figure 19. Features of the Eclipse IDE user interface made available to all plug-ins

Uniform developer experience across platforms Eclipse's all-Java construction lets exactly the same IDE code and IDE user interface run on any supported OS and hardware platform. Once you become familiar with the UI and operations of Eclipse, you will be right at home on any development platform, including UNIX, Linux, Windows, Mac OS X, and others.

Section 12. Downloading and installing Eclipse Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 33 of 60

developerWorks®

ibm.com/developerWorks

In this section, you'll download and install the Eclipse IDE and the Eclipse WTP server adapter for Application Server.

Downloading Eclipse You can download releases of the Eclipse IDE for your platform from the Eclipse Project Downloads page. The Eclipse WTP server adapter for Application Server that you'll use for this tutorial has been tested on Eclipse 3.2 and Eclipse WTP 1.5. Make sure you download only the compatible binaries. Instead of downloading and installing Eclipse, then WTP, then all the dependencies separately, the WTP team provides an all-in-one binary download that can save you a lot of time and headaches. Follow the links for the latest release at the Web Tools Platform downloads page to download a compatible version of the all-in-one binaries. The release version that this tutorial is tested on is based on WTP 1.5, and the download is wtp-all-in-one-sdk-R-1.5.1-200609230508-win32.

Unzip and install the Eclipse WTP all-in-one distribution Installing Eclipse is as simple as unzipping the .zip file's contents to a directory where you want Eclipse to be installed. Make sure you maintain the .zip file's structure as you unzip the distribution. If you look into your distribution directory, you will find an eclipse.exe executable, which starts Eclipse. You might want to drag-and-drop a shortcut onto your desktop or the system tray to make future launching of the IDE simpler. Double-click eclipse.exe or run it on the command line. The IDE should start. After the splash screen, it prompts you to select a workspace, shown in Figure 20: Figure 20. Selecting the initial workspace for the Eclipse IDE

Free software, fast development Page 34 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

A workspace is simply a directory where Eclipse manages source code and other artifacts of your projects. You can maintain as many projects as you wish in a workspace. In production projects that use version control, development staff often needs to work on multiple branches of the same source tree at the same time. You can use multiple workspaces to work on the different branches. For the purpose of this tutorial, accept the default to let Eclipse create a new workspace for you. The IDE starts up with a help screen that you can walk through the fundamentals of working with Eclipse, if you wish. Close Eclipse to prepare for the next step.

Eclipse WTP server adapter for Application Server installation The Eclipse WTP server adapter for Application Server lets you control an instance of Application Server within Eclipse. You can automate the testing/debug process using this server adapter because it can also install and uninstall applications directly to the connected instance of the Application Server. The best way to install the Eclipse WTP server adapter for Application Server is to use the Eclipse update manager. Using the update manager significantly simplifies the download and installation process. To install the Eclipse WTP server adapter for Application Server: 1.

Select Help > Software Updates > Find and Install ... from the Eclipse menu.

2.

In the Install/Update wizard, select Search for new features to install and click Next.

3.

Click the New Remote Site button on the top right, and enter the Name of Eclipse WTP server adapter for WAS CE 1.1, and set the Url to

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 35 of 60

developerWorks®

ibm.com/developerWorks

http://download.boulder.ibm.com/ibmdl/pub/software/websphere/wasce/updates/. 4.

Click Finish and let the update manager download and install the adapter.

After installation, the download manager might suggest a restart of the Eclipse environment. Let the update manager restart the environment, and the adapter will be installed and ready to go.

Section 13. Hands-on Eclipse: Connecting Eclipse to DB2 Express-C 9 This section shows how to use Eclipse's powerful Database Explorer view to connect to the DB2 Express SAMPLE database you created earlier in this tutorial.

Creating a DB2 Express-C 9 connection in the Database Explorer Start Eclipse in the workspace you created during the installation. From the Eclipse IDE menus, select Window > Show View > Other.... In the window, select the Database Explorer view, as shown in Figure 21: Figure 21. Creating an Eclipse Database Explorer view

Free software, fast development Page 36 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

A new Database Explorer view appears. Right-click the Connections element and select New Connection.... Fill in the connection information as shown in Figure 22, pointing to your SAMPLE database: Figure 22. Connecting Eclipse to DB2 Express-C 9 through the JDBC driver

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 37 of 60

developerWorks®

ibm.com/developerWorks

In Figure 22, note that you need to enter the user ID and password of the Windows user under which you set up DB2 Express-C 9. As you know from Downloading and installing DB2 Express-C 9, it should be your own Windows user ID and password. Another important area is the Class location field (see Figure 22). Click Browse to locate the SQLLIB/java subdirectory and select the db2jcc.jar JDBC driver. You must manually edit the entry to add the db2cc_license_cu.jar file. Otherwise, the connection will be denied. In my setup, for example, the entire entry becomes: C:\Program Files\IBM\SQLLIB\java\db2jcc.jar; C:\Program Files\IBM\SQLLIB\java\db2jcc_license_cu.jar

The two entries are separated by a semicolon (;). If you have installed DB2

Free software, fast development Page 38 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Express-C 9 somewhere other than the default location, you need to change the path accordingly. You should now be able to click Test Connection, and Eclipse should report that the connection is successful. Finally, click Finish. A new SAMPLE connection appears in the Database Explorer view. Expand the SAMPLE connection to see your EMPLOYEE and PRODUCTS tables. Figure 23 shows the expanded EMPLOYEE table: Figure 23. Exploring the SAMPLE DB2 Express-C 9 database from Eclipse

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 39 of 60

developerWorks®

ibm.com/developerWorks

You can see how easy it is to access information on DB2 Express-C 9 databases from Eclipse.

Free software, fast development Page 40 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Section 14. Working with data in the Data Output and Database Explorer views Now that the connection to your DB2 database is established, you'll see some of the powerful features provided by the Database Explorer and Data Output views in Eclipse.

Examining table schema In Figure 23, you saw that the Database Explorer provides full field definition, field type, default values, and primary key information -- right on the tree view display of the EMPLOYEE table.

Viewing the table content To see the contents of a table (EMPLOYEE, for example), right-click the table and select Data > Sample Content. This performs a SELECT * on the table and displays the result in a Data Output view, as shown in Figure 24: Figure 24. Eclipse Data Output view displaying DB2 Express-C 9 table contents

To see the SQL statement that is executed on the DB2 engine, you can click the Messages tab of the Data Output view.

Modifying table content You can change the value of any record, as well as add rows to a table, directly from the Database Explorer view. Right-click the EMPLOYEE table and select Data > Edit. Eclipse opens up a database edit view. You can see all the data in the table. You

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 41 of 60

developerWorks®

ibm.com/developerWorks

can change the data in the fields, and you can add new rows to the end of the table. Figure 25 shows this editable view: Figure 25. Modifying DB2 Express-C 9 data from Eclipse

Generating Data Definition Language (DDL) for your table Another useful feature available in Database Explorer view is the ability to generate Data Definition Language (DDL) scripts from your connected databases. To see this in action, right-click EMPLOYEE and select Data > Generate DDL.... This brings up a wizard that guides you through the DDL generation process. Select all the check boxes in the wizard's first two screens. The wizard's final screen previews the generated DDL. For the EMPLOYEE table, it is similar to Listing 3: Listing 3. DDL generated by Eclipse's Database Explorer for the EMPLOYEE table ALTER TABLE "SING"."EMPLOYEE" DROP CONSTRAINT "RED"; ...

Free software, fast development Page 42 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

CREATE TABLE "SING"."EMPLOYEE" ( "EMPNO" CHAR(6) NOT NULL, "FIRSTNME" VARCHAR(12) NOT NULL, "MIDINIT" CHAR(1), "LASTNAME" VARCHAR(15) NOT NULL, "WORKDEPT" CHAR(3), "PHONENO" CHAR(4), "HIREDATE" DATE, "JOB" CHAR(8), "EDLEVEL" SMALLINT NOT NULL, "SEX" CHAR(1), "BIRTHDATE" DATE, "SALARY" DECIMAL(10 , 2), "BONUS" DECIMAL(10 , 2), "COMM" DECIMAL(10 , 2) ); ...

You can use this DDL to re-create the table on any DB2 database. You can save this DDL to a file or execute it on a server (perhaps creating the same table in another database).

Section 15. Creating a Web application with Eclipse and WTP In this section, you'll create a simple Web application consisting of a single JSP that accesses data in your SAMPLE database and an associated stylesheet.

Kick-start components working together Now you'll put together what you've learned so far in this tutorial and develop a data-driven Web application in the Eclipse IDE. You'll deploy the Web application, bundled in a standard Web application archive (WAR) file, to Application Server and test it there. This application accesses the DB2 Express-C 9 server through the database pool that you set up earlier in this tutorial (see Connecting Application Server to DB2 Express-C 9). The connections and relationships among Eclipse, Application Server, and DB2 Express-C 9, illustrated in Figure 26, are key to this scenario: Figure 26. Relationships among Eclipse, Application Server, and DB2 Express-C 9

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 43 of 60

developerWorks®

ibm.com/developerWorks

In Figure 26, Eclipse's Database Explorer and Data Output views are used to access directly the database schema and content managed in DB2 Express-C 9. Application Server is configured with a JDBC data pool that accesses DB2 Express-C 9 databases.

Creating a new Eclipse project Follow these steps to create a new Web project for Application Server deployment: 1.

Shut down your Application Server server.

2.

Start Eclipse and select File > New > Project... from the application menu.

3.

From the window, select Web > Dynamic Web Project.

4.

In the wizard screens: • Enter dwapp for the Project name. • Select Apache Geronimo v 1.0 for the Target runtime. • Accept the default for everything else.

Figure 27 shows the directory structure of the dwapp project you've created using Eclipse's Navigator view: Figure 27. Creating a new dynamic Web project on the Eclipse IDE

Free software, fast development Page 44 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Generated deployment descriptor and plan Web applications are archived into standard WAR file format before they can be deployed to a compatible server. The organization of these WAR files is governed by the J2EE 1.4 standard specifications. In Figure 27, under the WebContent directory, you can see the standard J2EE WAR file layout of directories. The wizard has also generated two XML files automatically, described in Table 5: Table 5. Wizard-generated XML files for 1.4 J2EE dynamic Web applications Generated XML file

Description

WEB-INF/web.xml

Standard J2EE deployment descriptor for Web applications running on compatible containers. Must be included with every deployed WAR file.

WEB-INF/geronimo-web.xml

Application Server specific deployment plan. This plan describes server customization for deployment of this application.

Coding a JSP to access EMPLOYEE data Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 45 of 60

developerWorks®

ibm.com/developerWorks

Now you'll create a JSP that accesses the data in the EMPLOYEE table: 1.

With the WebContent directory highlighted, right-click and select New > Other....

2.

From the wizard, select Web > JSP.

3.

Name the page index.jsp.

4.

Click Finish.

Eclipse generates a skeletal JSP page from a template. Edit the page to match Listing 4. Alternatively, you can copy the source from this tutorial's code download (see Download). Listing 4. JSP accessing employee data from the DB2 Express-C 9 SAMPLE database <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> dW Example Employee Data from DB2 Express-C 9 Table

  DB2 Express Employee List


<sql:query var="employees" dataSource="jdbc/DataSource"> SELECT * FROM EMPLOYEE
Emp no First name Last name Phone Job Salary Bonus Commission Department


Free software, fast development Page 46 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®



This JSP prints out a table of employee information. Each row displayed represents one employee record maintained in the DB2 Express-C 9 EMPLOYEE table. The coding makes use of only JSP Standard Tag Library (JSTL) tags and Expression Language (EL); it does not contain any embedded Java code. Embedded Java code in JSP is often viewed as a bad practice because it tends to become error-prone and unmanageable in the long term. The boldfaced lines in Listing 4 show how the <sql:query> tag accesses a JDBC data source called jdbc/DataSource to execute the SQL SELECT statement. The result of the query is assigned to the employees variable. Each row of this result is then displayed using a iterative tag.

Linking an application data source reference to an Application Server database pool The index.jsp page, when deployed to Application Server, needs to resolve the data source named jdbc/DataSource. Specifically, you need to make sure that it resolves to the dwDatasource that you set up earlier, which points to the DB2 Express-C 9 SAMPLE database. This is standard J2EE flexibility. The deployable application WAR file contains references to resources (such as a data source) that is resolved only when the application is deployed. This enables the same code module to be deployed, without reassembly, on different application servers against different database servers. Examine the web.xml file that is generated and make sure you add the boldfaced lines from Listing 5. (You might need to click the Source tab of the Eclipse XML file editor.) Make sure you save the updated web.xml file. Listing 5. J2EE deployment descriptor -- web.xml for the application <web-app id="dwapp" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> dwapp <welcome-file-list> <welcome-file>index.html <welcome-file>index.htm <welcome-file>index.jsp <welcome-file>default.html <welcome-file>default.htm <welcome-file>default.jsp jdbc/DataSource javax.sql.DataSource

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 47 of 60

developerWorks®

ibm.com/developerWorks

Container Shareable


The provides information to the container (Tomcat in this case) on the external resource references that need to be resolved. In the geronimo-web.xml, you make the actual link to the dwDatasource. Examine the geronimo-web.xml deployment plan in Eclipse. (Click the Source tab of the deployment plan editor.) Add the boldfaced lines shown in Listing 6 to the deployment plan and save it: Listing 6. The Application Server specific deployment plan -geronimo-web.xml <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"> <sys:environment> <sys:moduleId> <sys:groupId>default <sys:artifactId>dwapp <sys:version>1.0 <sys:type>car <sys:dependencies> <sys:dependency> <sys:groupId>console.dbpool <sys:artifactId>dwDatasource /dwapp jdbc/DataSource dwDatasource

Adding a <sys:dependency> pointing to console.dbpool/dwDatasource ensures that the JCA 1.5 resource adapter instance that you configured earlier is available to this application. Note that <sys:version> and <sys:type> of the <sys:dependency> are not specified, Application Server will treat this as a wildcard and look up the resource matching any version or type. The element tells Tomcat in Application Server that the jdbc/DataSource reference should be linked to the configured dwDatasource database pool.

Downloading and copying JSTL library JARs You must explicitly include the support libraries for JSTL 1.1 when you use a J2EE

Free software, fast development Page 48 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

1.4 application server. (This support is due to become a standard part of Java EE 5.) Currently, the reference implementations of these libraries are maintained as part of the Apache Jakarta Taglibs project. The library JAR files include: • jstl.jar • standard.jar You can download these JAR files from the Jakarta Taglibs page. For your convenience, they are also included in this tutorial's code distribution under the jstl subdirectory (see Download). Copy both of these JAR files to the WebContent/WEB-INF/lib directory of your Eclipse project before proceeding.

Application Server as a Web server: Adding static content So far you've learned how to generate content dynamically by executing JSP code on Application Server. But Application Server also has the built-in capability to act as a regular Web server that serves static content. If your Web project requires static content service, just place the static content starting from the WebContent directory in your Eclipse project. Right-click the WebContent directory and select New > Other.... From the pop-up window, select Web > CSS. You'll add a static Cascading Style Sheet (CSS) to the application to enhance its appearance. Name the stylesheet dwstyles.css and accept the default template for the stylesheet. Edit the dwstyles.css file, adding the content in Listing 7. You can also copy-and-paste from the code distribution (see Download). Listing 7. dwstyles.css -- A static stylesheet for formatting the data output h1 { font-family: arial; font-size: 38; align: left; font-weight: bold; font-style: italic; color: green; } th { font-family: verdana, arial; font-size: 13; font-weight: bold; align: left; background-color: black; color: white; }

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 49 of 60

developerWorks®

ibm.com/developerWorks

td { font-family: verdana, arial; font-size: 12; font-style: italic; align: left; } table { border-style: solid; border-width: thin; }

Save the modified stylesheet. When you deploy the application, the stylesheet is accessible directly, as static content, from Application Server. Your user's browser accesses this static stylesheet to format the dynamic output from index.jsp. If the first page of your Web project is static and not dynamically generated, you can simply add an index.html page to the WebContent directory.

Deploying applications to Application Server Alternative way to deploy applications The WTP server adapter for Application Server is currently undergoing active development in the open source community. Depending on the JVM version and operating system you are using, you might encounter some problems with the adapter. A sure-fire way of deploying the application to Application Server is to export the project as a WAR file and then deploy it using the Application Server console. To export a WAR file, right-click on the dwapp project and select Export.... In the Export Wizard, select Web > WAR file. Save the exported WAR file to a directory of your choice where it can be found easily. Then, with the Application Server running:

1.

Log in to the console.

2.

Select Deploy New from the menu.

3.

Click the Browse button and locate the WAR file.

4.

Click Install to deploy and start the application.

You are now ready to deploy the dwapp application to Application Server. Right-click the dwapp element in Eclipse's Navigator and select Run as > Run on Server.... In the Run On Server wizard that opens (shown in Figure 28), select WebSphere Application Server Community Edition v1.1 Server. Make sure you select the check box named Set server as project default (do not ask again). Figure 28. The Run On Server wizard connecting Eclipse to a Application Server instance Free software, fast development Page 50 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Click Next and select the JRE that you are using. (It must be one of the JRE releases listed in System requirements). Also enter the directory where you have installed Application Server. This is shown in Figure 29: Figure 29. Specifying JRE and Application Server runtime for the Eclipse connected server

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 51 of 60

developerWorks®

ibm.com/developerWorks

Click Finish and wait while Eclipse starts Application Server and deploys the application to Application Server. You should see the list of employees displayed on a Web browser window within the Eclipse IDE, as shown in Figure 30: Figure 30. Successful Eclipse deployment of an Application Server application accessing DB2 Express-C 9 data

Free software, fast development Page 52 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

The IDE is now connected to Application Server for rapid development and deployment. At any time during your development cycle, you can deploy your application to Application Server for testing. If you wish, you can configure the same Application Server for production. Your application users can then see your application changes immediately after you deploy the application to the server.

Section 16. Configuring Application Server for an Internet Web site So far, this tutorial has focused the setup for Application Server on ease of application development and test deployment. In this section, you'll configure Application Server as a general Web server on the Internet.

Application Server as a Web server If your machine were set up as an Internet-accessible server, the users accessing Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 53 of 60

developerWorks®

ibm.com/developerWorks

your application over the Internet would need to use the URL http://your www domain name:8080/your application name. Now you'll learn how to configure Application Server to accept the URL http://your Web domain name/. It involves two steps: 1.

Changing the TCP port that the Tomcat (Web connector) listener is listening to

2.

Changing the application context of the application deployed on Application Server

Changing the Tomcat listener port You need to change the Application Server default port 8080 assignment to port 80. Port 80 is the default TCP port for the HTTP protocol. If you use port 80 on the Application Server, users do not need to specify explicitly the port when they access your site. Log on to the Application Server Administration Console and select Web Server on the left-hand side menu. You'll see three connectors running, one for regular Web connections, one for Secure Sockets Layer (SSL)-based connections, and one for the AJP protocol. This is shown in Figure 31: Figure 31. Changing the port of the TomcatWebConnector for Internet user access

Free software, fast development Page 54 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Click the edit link next to the HTTP-based TomcatWebConnector. On the next screen, replace port 8080 with port 80 and click Save. Now, shut down the server and restart it. Your Application Server application is now accessible at http://your WWW domain name/your application name. Next, to get rid of the need to type the name of the application, you'll modify the application deployment context to map to the root or /.

Modifying the application deployment context To map the application deployment context root to /, you need to modify the geronimo-web.xml deployment plan in your project. The element you need to modify is named . For example, if you want to move the dwapp application to the root context, you need to make the change shown in boldface in Listing 8 to its geronimo-web.xml plan: Listing 8. Modifying geronimo-web.xml to deploy application at server root <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1" xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.1" xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1">

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 55 of 60

developerWorks®

ibm.com/developerWorks

<sys:environment> <sys:moduleId> <sys:groupId>default <sys:artifactId>dwapp <sys:version>1.0 <sys:type>car <sys:dependencies> <sys:dependency> <sys:groupId>console.dbpool <sys:artifactId>dwDatasource / jdbc/DataSource dwDatasource

Section 17. Summary You are at an historical moment in the evolution of the software industry. As a Java Web developer, you now have a choice of many free-to-license servers and development tools that a few short years ago were available to only the largest enterprise development teams. The open source Eclipse IDE, the IBM DB2 Express-C 9 database, and IBM WebSphere Application Server Community Edition are all your disposal, only a short click away. This collection of servers and IDEs works very well together to make your design, development, testing, and deployment life simpler. In this tutorial, you have: • Installed and became familiar with DB2 Express-C 9, using its rich set of GUI tools and command-line tools • Created database tables with DB2 Express-C 9 and queried against them using SQL commands • Installed and worked with WebSphere Application Server Community Edition, using its Web-based Administration Console as well as the command-line deployer tool • Connected WebSphere Application Server Community Edition to DB2 Express-C 9 by deploying a system-wide database pool to the DB2 database • Installed the Eclipse IDE, the supporting Web Tools Platform, and the Eclipse WTP server adapter for WebSphere Application Server

Free software, fast development Page 56 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Community Edition • Connected Eclipse to DB2 Express-C 9 through Eclipse's versatile Database Explorer view, which lets you view schema structure, see table data content, modify data, and generate DDL • Used Eclipse to create a Web application and deployed it to WebSphere Application Server Community Edition with one click, supported through the Eclipse WTP server adapter for WebSphere Application Server Community Edition • Successfully developed an application on Eclipse, deployed it to WebSphere Application Server Community Edition, and made the application use DB2 Express-C 9 as its data supplier • Configured WebSphere Application Server Community Edition for access by users over the Internet You are now well on your way to developing and deploying your own Web applications on this powerful collection of software server and tools.

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 57 of 60

developerWorks®

ibm.com/developerWorks

Downloads Description

Name

Size

Sample code for this tutorial

j-kickstartcode.zip725KB

Download method HTTP

Information about download methods

Free software, fast development Page 58 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

ibm.com/developerWorks

developerWorks®

Resources Learn • "DB2 Express-C, the developer-friendly alternative" (Grant Hutchison, developerWorks, February 2006): Get started quickly using DB2 Express-C for all of your applications. • Migrate to DB2 Express-C: Resources to help you get started migrating to DB2 Express-C today. • Get started now with Eclipse: The developerWorks Eclipse resource page. • "Manage your Eclipse environment" (Chris Aniszczyk and Phil Crosby, developerWorks, February 2006): Zen and the art of Eclipse maintenance. • "Migrating to Eclipse": A developer's guide to evaluating Eclipse. • "Developing Eclipse plug-ins" (David Gallardo, developerWorks, December 2002): Learn to create, debug, and install your plug-ins. • "Get started with WebSphere Application Server Community Edition" (Nell Gawor and Lin Sun, developerWorks, December 2005): Learn what you need to know to get up and running quickly with WebSphere Application Server Community Edition, from setting up your environment and choosing the right download package to deploying applications. • "Migrate from JBoss to WebSphere Application Server Community Edition" (Shyam Nagarajan, developerWorks, November 2005): An excellent guide for migrating your applications. • "Migrate from Apache Tomcat to WebSphere Application Server Community Edition" (Sing Li, developerWorks, November 2005): Author Sing Li demonstrates how to migrate a J2EE Web tier application from Apache Tomcat 5.5 to WebSphere Application Server Community Edition V1.0. • "WebSphere Application Server Community Edition system administration": Learn everything you need to know to successfully administer a WebSphere Application Server Community Edition environment. • WebSphere Application Server Community Edition: Documentation, FAQs, articles, and more resources. • Apache Geronimo: The J2EE server from Apache. • Apache Axis: Apache's reliable and stable base for implementing Java Web services. • Apache Tomcat: The Apache servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. • Apache Derby: Apache's relational database implemented entirely in Java. • ActiveMQ: Try out this fast, open source JMS 1.1 provider, which supports

Free software, fast development © Copyright IBM Corporation 1994, 2006. All rights reserved.

Page 59 of 60

developerWorks®

ibm.com/developerWorks

clustering, peer networks, discovery, TCP, SSL, multicast, persistence, and XA and integrates seamlessly into J2EE 1.4 containers, lightweight containers, and any Java application. • Open EJB: Learn more about this open source, modular, configurable, and extendable EJB Container System and EJB Server. Get products and technologies • WebSphere Application Server Community Edition: Download the application server. • DB2 Express-C: Download the database server. • Eclipse: Download the Eclipse SDK. Get the all-in-one Eclipse binary download from the Web Tools Platform downloads page. Discuss • DB2 Express forum • eclipse.org • Eclipse newsgroups • Eclipse developer mailing lists • developerWorks blogs

About the author Sing Li Sing is a consultant and an active author with over two decades of industry experience. He has contributed to Beginning JavaServer Pages, Professional Apache Tomcat 5, Pro JSP - Third Edition, Early Adopter JXTA, Professional Jini, Beginning J2ME: From Novice to Professional, Third Edition , and numerous other books. Sing also writes for technical magazines and participates in open source communities. He is an evangelist of the open source, VOIP, and P2P movements. You can reach Sing at [email protected].

Free software, fast development Page 60 of 60

© Copyright IBM Corporation 1994, 2006. All rights reserved.

Related Documents

Free Software
December 2019 11
Software Development
June 2020 7
About Free Software
December 2019 24
The Free Software
October 2019 22