Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Accessing DB2 UDB data in Browser Based Applications using IBM Rational Application Developer
By Nitin Raut ([email protected])
Certified Consulting IT Specialist
IBM Corporation
April 2010
Skill Level: Intermediate
Skill Level: Intermediate
Accessing DB2 UDB data in Browser Based Applications Scenario Page 1
Accessing DB2 UDB data in Browser Based Applications JavaServer Faces (JSF) is a framework that simplifies building user interfaces for
Web applications. Service Data Objects (SDO) is a data programming architecture and API for the Java platform that unifies data programming across data source types.
In this lab you will see how you can use JavaServer faces to create user interface to represent the data. We will also see how Service Data Objects can simplify the access to data on IBM i.
Page 2 EM Sandbox for Power
JSF Client Consuming Service Data Objects
In this lab you will build a Web application that uses JavaServer Faces (JSF) and Service Data Objects (SDO) technology to access data on IBM i.
• What you should be able to do: o At the end of the lab, you should be able to:
• Create JSF Input from with actions. • Create Service Data Object to query iSeries table.
• Introduction
o The steps in this lab are: Create Faces JSPs Define Service Data Objects (SDOs) Test JavaServer Faces Application in WebSphere Application Server Test
Environment
• Skill Prerequisites o Prerequisite skills for this lab are:
Understanding of Java programming language concepts and beginner Java programming skills
Accessing DB2 UDB data in Browser Based Applications Scenario Page 3
Required Materials o Client system requirements:
IBM Rational Application Developer V7.5
o Lab information sheet:
Variable Description Demonet IBM i
<team_number> Team Number 99
<IBMi> IBM i hostname iseriesd.demos.ibm.com
<IBMi_userid> IBM i user ID SOADEMO
<IBMi_password> IBM i password demo4you
<app_lib> Application library FLGHT400
<app_lib_modules> Application Library - Modules FLGHT400M
<workspace> Workspace C:\PoT\SOAiV75\workspace
<team_dir_local> Team directory local C:\PoT\SOAiV75\teamxx
Page 4 EM Sandbox for Power
1.1 Start Rational Developer for Power Systems (RDp)
Skip to next section if ….
You are already in Rational Developer for Power Systems and you have started WebSphere Application Server Test Environment
Start Rational Developer for Power Systems (RDp)
__1. Go to Start => All Programs => IBM Software Development Platform => IBM Rational Developer for Power Systems Software V7.5 => IBM Rational Developer for Power Systems Software
__2. In the workplace launcher window, enter <workspace> (shown by default) in the workspace field and press OK. (Please make sure that Use this as a default and do not ask again is NOT checked)
Important! Please make sure that Use this as a default and do not ask again is NOT checked
__3. On the Welcome page. Click X to close or press Workbench icon.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 5
Start WebSphere Application Server Test Environment
Start WebSphere Application Server Test Environment This is very important before invoking the web services wizard, as the wizard will fail.
__4. In current perspective (Remote System Explorer by default). Select Window => Open Perspective => Other. Select Web Perspective and click OK.
__5. In the Web Perspective, click on Servers tab (bottom of screen). Select WebSphere Application Server 7.0 and press Start button.
__6. You should see console view with startup messages. Once WebSphere Application Server is started you will see Server view with status “Started”.
Page 6 EM Sandbox for Power
__7. Another way to make sure WebSphere Application Server Test Environment is started is to see the console view with message “Server server1 open for e-business”.
Troubleshooting If the WebSphere Application Server Test Environment does not start. Please check server connection type and admin port. To check configuration, double click on WebSphere Application Server 7.0 under server view. You may manually provide the connections settings and select SOAP connector port instead of RMI port which is more compatible with firewalls. Click on X and save the configuration when prompted.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 7
1.2 Create a Web Project
Open Web Perspective
__1. Go to Window => Open Perspective => Other. In the Open Perspective window, select Web and click OK.
Create a Web Project
__2. Create a Web project: Select File => New => Dynamic Web Project
Page 8 EM Sandbox for Power
__3. In Dynamic Web Project window,
Enter Project Name: FSxxSDO (where xx is your team number)
Select Target Runtime : WebSphere Application Server V7.0
Select Configuration : Java Server Faces IBM Enhanced Project (Since we will be creating JSF pages, this adds Java Server faces support to the project)
Enter EAR Project Name : FSxxSDOEAR (where xx is your team number)
Click Next.
__4. In Configure web module settings window, it allows you to change the context root and other parameters for the project. Click Next.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 9
__5. In JSF Capabilities window, it let’s you add component libraries, shows configuration file and JSF servlet name. Click Finish.
__6. Under Project Explorer Expand FSxxSDO project => Click on WebContent folder.
Create Faces JSPs
__7. From the menu bar, go to File -> New -> Web Page
Page 10 EM Sandbox for Power
__8. In the New Web Page window,
Enter File Name : FSSDOInput Make sure JSP under Basic Templates is selected
Click Finish.
__9. Click on WebContent folder.
__10. Next let’s create result page. From the menu bar, go to File -> New -> Web Page. In the New Web Page window,
Enter File Name : FSSDOResult Make sure JSP under Basic Templates is selected
Click Finish.
__11. Next, let’s edit input page. Click on FSSDOInput.jsp window title.
__12. Type heading Flights Search and press Enter.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 11
__13. Select text “Flights Search” by pressing SHIFT+ARROW key on the keyboard and click on the Properties view at the bottom.
Page 12 EM Sandbox for Power
__14. The properties view allows you change the properties for the selected component in the edit window. Select Heading 1 in paragraph field. You may also change the color and the font.
__15. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 13
Define Session Scope Variables to hold input data
__16. In the page data view on the left side bottom area.
Page data view
If page data view is not seen then open the Page Data view. Select Window => Show View => Page Data
Page data view also might be available on the right hand side where pallet drawer is located.
Right click on Scripting Variables, and select New -> Session scope variable.
Page 14 EM Sandbox for Power
__17. In Add Session Scope Variable window, enter following details:
__a. Variable Name: fromCity
__b. Type: java.lang.String
__c. Click OK
__18. Add another variable: toCity. In the page data view, right click on Scripting Variables, and select New -> Session scope variable. In Add Session Scope Variable window, enter following details:
__a. Variable Name: toCity
__b. Type: java.lang.String
__c. Click OK.
__19. Expand Scripting variables -> Session scope node to see the defined variables.
__20. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard
Accessing DB2 UDB data in Browser Based Applications Scenario Page 15
__21. Make sure your cursor is just below the heading. Add an HTML table with 1 row and 5 columns. In the Palette view, expand HTML Tags drawer. Click on the Table component and just move the cursor onto the JSF page and drop it under the heading as shown below:
__22. On the Insert Table dialog enter the number of rows: 1, and the number of columns: 5. Click OK.
__23. Next, we will add some labels. Complete the following steps:
__a. Type in From City: in the first column of the table
__b. Type in To City: in the third column of the table.
Page 16 EM Sandbox for Power
__24. In the Palette view expand Enhanced Faces Components. Select the Input component and move the cursor into 2nd column of the table and drop it in the 2nd column.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 17
__25. Drop another Input component to the 4th column of the table.
__26. Drop a Button - Command component into the 5th column of the table.
__27. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Page 18 EM Sandbox for Power
Change the properties of input fields
__28. Select the first input field (2nd Column) on the JSF and switch to the Properties View. Set the Id field to fromCity.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 19
__29. Bind fromCity scripting variable to the fromCity input field on the JSF page. Binding will allow us to save input field values and pass them to the Relational Record List JSF component that will perform a database query.
On the JSP, make sure that fromCity input field is selected. Go to the Page Data view, expand Scripting variables -> Session scope and select fromCity field. Right mouse click and select Bind to ‘fromCity’.
__30. It is important that this binding is correct, check the properties view, you will see session scope variable is defined in the value field.
Page 20 EM Sandbox for Power
__31. Select the second input filed (4th Column) on the JSF and switch to the Properties View. Set the Id field to toCity.
__32. On the JSF, make sure that toCity input field is selected. Go to the Page Data view, expand Scripting variables -> Session scope and select toCity field. Right mouse click and select Bind to ‘toCity’
__33. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 21
Modify Button Properties
__34. Click on the submit button. Enter Id: search
Page 22 EM Sandbox for Power
__35. Next we are going to define the Action Rule for this button. Scroll to right in the properties view, click Add Rule.
__36. In the Add navigation rule window:
__a. Select FSSDOResult.jsp in page field from the drop down list
__b. Under when the action returns the outcome, Select The Outcome named radio button
__c. Enter search in the outcome named field and click OK.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 23
__37. Click Display options on the properties view. Enter Button Label: Search.
__38. Click on Quick Edit tab next to properties and click inside the Quick Edit view to enter the code snippet.
__a. Enter following code snippet in Quick Edit view: // TODO: Return outcome that corresponds to a navigation rule
return "search";
__39. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Page 24 EM Sandbox for Power
Modify FSSDOResult.jsp page
__40. Click on FSSDOResult.jsp window title.
__41. Type heading Flights Search Result and press Enter.
__42. Select text “Flights Search Result” by pressing SHIFT+ARROW key on the keyboard and click on the Properties view at the bottom.
__43. The properties view allows you change the properties for the selected component in the edit window. Select Heading 1 in paragraph field. You may also change the color and the font.
__44. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 25
Add Relational Record List Component
__45. Make sure your cursor is just below the heading. In the Palette view, expand Data drawer. Click on the SDO Relational Record List component and just move the cursor onto the JSF page and drop it under the heading.
Page 26 EM Sandbox for Power
__46. Add Relational Record List dialog is displayed.
Enter name: flightsData
Uncheck Reuse metadata definition from an existing record or record list (if it is checked) Click Next.
__47. Since there are no connection defined earlier, click New next to the Connection Name field.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 27
__48. Select a connection dialog is displayed. If there is already defined the connection to IBM i then you could use that connection here by selecting the connection under connections box. We are going to define new connection here so click New next to connection box.
Page 28 EM Sandbox for Power
__49. Complete the following steps on the Specify Connection Parameters dialog
__a. In the Select a database manager list expand the DB2 for i5/OS
__b. In the Host field: enter <IBMi> (Please refer to lab information section of the lab)
__c. Under specify user information, enter <IBMi_userid> and <IBMi_password> (Please refer to lab information section of the lab)
__d. Check Save password
__e. Click on Test Connection to test the database connection.
__i. You will see Connection to DB2 UDB iSeries was successful. Click OK.
__f. Click Next to proceed.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 29
__50. On Filter screen,
__a. First uncheck disable filter checkbox.
__b. Check Selection checkbox to select the database schema
__c. Scroll down and check <App_lib> (Please refer to lab information section of the lab) and click Finish.
Page 30 EM Sandbox for Power
__51. Back in select a connection window, make sure the newly created connection is selected and click Finish.
__52. IBack in Add Relational Record List dialog, select the <App_lib>.FLIGHTS table from the list of tables. Click Next.
__53. You will see a error message “ The table selected does not have a primary key”. To specify the primary key click on Modify Primary key link under tasks.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 31
__54. In the Edit primary keys window, select FLIGHT_NUMBER and click right arrow key. Click Close.
__55. Back in Add Relational Record list window, click Filter Results to add conditions.
Page 32 EM Sandbox for Power
__56. In the Filters window, click on the plus icon to add a condition.
__57. Conditions dialog is displayed. In the column drop down select DEPARTURE. In the value field we will specify the session scope variables we captured on the Input page. Check variable radio button and click the … push button next to the value field.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 33
__58. Select Page Data Object dialog is displayed. Expand sessionScope node and select fromCity field. Click OK
__59. Back in Conditions dialog click OK.
__60. In the Filters window, click on the plus icon to add another condition (for the arrival city).
__61. Conditions dialog is displayed. In the column drop down select ARRIVAL. In the value field we will specify the session scope variables we captured on the Input page. Check variable radio button and click the … push button next to the value field.
__62. Select Page Data Object dialog is displayed. Expand sessionScope node and select toCity field. Click OK
__63. Back in filters window, click Close.
__64. Back in Add Relational Record List window, click Next.
Page 34 EM Sandbox for Power
__65. On the Configure Data Controls dialog, rearrange the order of columns and deselect some of the fields. Use arrows to move the fields.
Column order:
FLIGHT_NUMBER AIRLINES DEPARTURE DEPARTURE_TIME ARRIVAL ARRIVAL_TIME TICKET_PRICE
Deselect the rest of the fields. Click Finish.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 35
__66. Your JSF page should look similar to this. You will also see Relational Record entry under page data view.
__67. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Page 36 EM Sandbox for Power
Change Column Headings, Pagers and Add Back Button
__68. Change column headings to make them more readable. Select a column heading Flight_number. In Properties view, change the value field.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 37
__69. Change other column headings as shown below:
__70. To add pagers, we need to select hx:dataTableEx property. The easiest way to select it is: Click on any of the column heading in dataTable to select it. You should see h:outputText tab selected in the properties view.
Page 38 EM Sandbox for Power
__71. Click on hx:dataTableEx to edit dataTable properties.
__a. Click on Display options tab under hx:dataTableEx
__b. Enter Rows per page: 10
__c. Click on icons under Paging. There are 4 different pagers available. Select one or all if you like by clicking on the icons.
__72. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 39
__73. Scroll down to the bottom of the FSSDOResult.jsp. Press down arrow to place the cursor below the data table. Select Button - Command from Enhanced Faces Component drawer under Palette view and drop it onto FSSDOResult.jsp just below the data table.
__74. If the button is not already selected. Click on the Submit button.
__75. Enter Id: back.
Page 40 EM Sandbox for Power
__76. Next we are going to define the Action Rule for this button. Scroll to right in the properties view, click Add Rule.
__77. In the Add navigation rule window:
__a. Select FSSDOInput.jsp in page field from the drop down list
__b. Under when the action returns the outcome, click The Outcome named
__c. Enter back in the outcome named field and click OK.
__78. Click Display options on the properties view. Enter Button Label: Back.
__79. Click on Quick Edit tab next to properties and click inside the Quick Edit view to enter the code snippet.
__a. Enter following code snippet in Quick Edit view:
// TODO: Return outcome that corresponds to a navigation rule return "back";
__80. Save you work by going to File -> Save from the menu bar or by pressing CTRL+S on the keyboard.
__81. Close FSSDOInput.jsp and FSSDOResult.jsp by clicking on ‘X’.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 41
1.3 Test JavaServer Faces Application in WebSphere Application Server Test Environment In this step, we will run the Application in WebSphere Application Server Test Environment.
__82. In the Project Explorer view, under FSxxSDO => WebContent node, right click on FSSDOInput.jsp and select Run As -> Run on Server option.
Page 42 EM Sandbox for Power
__83. In the Server selection window, choose an existing server and select WebSphere Application Server V7.0 under localhost and click Finish.
__84. After a while, you should see a browser displaying the FSSDOInput page with input form.
Double click Web Browser window title to expand the window. Enter following inputs:
From City: Albany
To City: Atlanta
Click Search.
Try out various pagers which you added earlier.
__85. Press Back button to go back to input form and try another search criterion.
__86. Double click on the Web Browser window title to go back to original size.
__87. Close the web browser window.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 43
Notices © Copyright IBM Corporation 1992, 2009 All rights reserved.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP
Schedule Contract with IBM Corp.
This information was developed for products and services offered in the U.S.A. IBM may not offer the
products, services, or features discussed in this documentation in other countries. Consult your local IBM
representative for information on the products and services currently available in your area. Any
reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user’s
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this
documentation. The furnishing of this documentation does not give you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing IBM Corporation
North Castle Drive
Armonk, NY 10504-1785 U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property
Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION ″AS IS″ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some
states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this
statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically
made to the information herein; these changes will be incorporated in new editions of the publication.
IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Accessing DB2 UDB data in Browser Based Applications Scenario Page 45
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the
exchange of information between independently created programs and other programs (including this
one) and (ii) the mutual use of the information which has been exchanged, should contact:
Intellectual Property Dept. for WebS phere Software IBM Corporation
3600 Steeles Ave. East
Markham, Ontario
Canada L3R 9Z7
Such information may be available, subject to appropriate terms and conditions, including in some cases,
payment of a fee.
The licensed program described in this documentation and all licensed material available for it are
provided by IBM under terms of the IBM Customer Agreement, IBM International Program License
Agreement or any equivalent agreement between us.
Any performance data contained herein was determined in a controlled environment. Therefore, the
results obtained in other operating environments may vary significantly. Some measurements may have
been made on development-level systems and there is no guarantee that these measurements will be the
same on generally available systems. Furthermore, some measurements may have been estimated through
extrapolation. Actual results may vary. Users of this document should verify the applicable data for their
specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their
published announcements or other publicly available sources. IBM has not tested those products and
cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of
those products.
All statements regarding IBM’s future direction or intent are subject to change or withdrawal without
notice, and represent goals and objectives only.
Copyright license
This information contains sample application programs in source language, which illustrates
programming techniques on various operating platforms. You may copy, modify, and distribute these
sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
Each copy or any portion of these sample programs or any derivative work, must include a copyright
notice as follows:
© (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. ©
Copyright IBM Corp. 1992, 2009. All rights reserved
Page 46 EM Sandbox for Power
Accessing DB2 UDB data in Browser Based Applications Scenario Page 47
Trademarks and service marks
The following terms are trademarks or registered trademarks of International Business Machines
Corporation in the United States, other countries, or both.
• i5/OS • IBM • OS/400 • Rational • WebSphere
Microsoft, Windows, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
Other company, product or service names may be trademarks or service marks of others.