Xem mẫu

Object-relational mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Implementing the session facade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 Creating the session bean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Creating an EJB reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Editing the session bean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 Generating the deployed code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 Completing the EJB deployment descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Changing the data source for EJB access . . . . . . . . . . . . . . . . . . . . . . . . 428 Testing the EJBs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Universal test client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Adapting the Web applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 Web project dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 EJB references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 Testing the Web interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 Chapter 13. Developing Web services. . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 The concept of a service-oriented architecture (SOA) . . . . . . . . . . . . . . . . . . 442 Web services approach for an SOA architecture . . . . . . . . . . . . . . . . . . . . . . 443 Web services tools in Application Developer . . . . . . . . . . . . . . . . . . . . . . . . . 445 Bottom-up development of a Web service . . . . . . . . . . . . . . . . . . . . . . . . 445 Top-down development of a Web service. . . . . . . . . . . . . . . . . . . . . . . . . 445 Client development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Preparation for samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Creating a Web service from a JavaBean . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Creating the Web service using the Web Service wizard . . . . . . . . . . . . . 447 Generated files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Testing the Web service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Using the sample test application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Using the universal test client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Creating a Web service client. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 Run the Web Service Client wizard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 Creating a Web service from a session bean. . . . . . . . . . . . . . . . . . . . . . . . . 464 Implementing a real client application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 More information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 Chapter 14. Developing GUI applications. . . . . . . . . . . . . . . . . . . . . . . . . 469 Introduction to the Visual Editor for Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 Sample GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 Setting up your sample project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 Launching the Visual Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 Create a visual class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 x WebSphere Studio Application Developer Version 5 Programming Guide Open an existing class with the Visual Editor . . . . . . . . . . . . . . . . . . . . . . 475 Visual Editor look and feel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 Customizing the appearance of the Visual Editor . . . . . . . . . . . . . . . . . . . . . 478 Changing the default Java Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 Working with the Visual Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 Resizing a JavaBean component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Code synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 Add JavaBeans to a visual class. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 Working with the Properties view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Working with the Java Beans view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 Extending the sample GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 Adding data to the JavaBean. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 Adding additional methods to the sample GUI. . . . . . . . . . . . . . . . . . . . . . . . 500 Writing event handling code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 Running and testing JavaBeans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 Running the sample GUI as a JavaBean . . . . . . . . . . . . . . . . . . . . . . . . . 505 Running the sample GUI as a Java application . . . . . . . . . . . . . . . . . . . . 507 Testing the sample GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 Running the sample outside of Application Developer. . . . . . . . . . . . . . . . . . 508 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 Part 3. Testing and debugging applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 Chapter 15. Servers and server configurations . . . . . . . . . . . . . . . . . . . . 513 Server tools feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Supported run-time environments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 Creating server and server configuration automatically . . . . . . . . . . . . . . . . . 516 Creating server and server configuration manually . . . . . . . . . . . . . . . . . . . . 519 Creating a Server project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 Creating a remote server and file transfer mechanism . . . . . . . . . . . . . . . 520 Creating a server configuration manually . . . . . . . . . . . . . . . . . . . . . . . . . 527 Assigning a server configuration to a server. . . . . . . . . . . . . . . . . . . . . . . 530 Creating a server and server configuration together . . . . . . . . . . . . . . . . . . . 530 Assigning a project to a server configuration . . . . . . . . . . . . . . . . . . . . . . . . . 531 Configuring the data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 Starting and stopping servers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 Changing the applications to run on a remote server. . . . . . . . . . . . . . . . . . . 538 Apache Tomcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 TCP/IP Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 Configuring the TCP/IP Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 Using the TCP/IP Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 Customizing server configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Server page. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 Contents xi Configuration page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Applications page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 Administrative console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 Applying Fix Packs to the WebSphere test environment . . . . . . . . . . . . . . . . 549 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 Chapter 16. Testing and debugging. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 Debugging a Web application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Setting breakpoints in a servlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 Setting breakpoints in a JSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 Testing the application with breakpoints enabled. . . . . . . . . . . . . . . . . . . . . . 557 Debug view with stack frames. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Debug functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 Breakpoints view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 Watching variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 Inspecting variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Evaluating an expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 Debugging a JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Debugging on a remote WebSphere Application Server . . . . . . . . . . . . . . . . 566 Configuring the remote server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Attaching to remote server in Application Developer . . . . . . . . . . . . . . . . 567 Connecting to the remote server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 Debugging on the remote server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 Disconnecting from the remote server . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 Chapter 17. JUnit and component testing . . . . . . . . . . . . . . . . . . . . . . . . 573 What is JUnit? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 Unit testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 Why unit testing?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 Benefits of a unit testing framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 Testing with JUnit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 TestCase class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 TestSuite class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 Creating the test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 Importing the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 Preparing for JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 Creating a test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 The setUp and tearDown methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Test methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 Creating a TestSuite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 Running the test case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 Testing the Web applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 xii WebSphere Studio Application Developer Version 5 Programming Guide Component testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 Creating a Java test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 Preparing a Java test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 Updating code of Java test case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 Running a Java test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 Report test case results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 Creating an HTTP test case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Part 4. Deploying and profiling applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 Chapter 18. Deploying enterprise applications . . . . . . . . . . . . . . . . . . . . 607 Enterprise application deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 Importing the enterprise application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 Working with deployment descriptors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 EJB deployment descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 Web deployment descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Application client module deployment descriptor . . . . . . . . . . . . . . . . . . . 613 Building an application client module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 Exporting an enterprise application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Configuring WebSphere Application Server. . . . . . . . . . . . . . . . . . . . . . . . . . 617 Start the server and the administrative console . . . . . . . . . . . . . . . . . . . . 617 Configuring a server (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 Configuring a JDBC driver and data source . . . . . . . . . . . . . . . . . . . . . . . 618 Save the configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 Installing an enterprise application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 Regenerating HTTP Server plug-in configuration . . . . . . . . . . . . . . . . . . . 627 Starting the enterprise application. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 Testing the applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628 Remote debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 Command line tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 Batch commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 Scripting tool: wsadmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 Classpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632 Chapter 19. Building applications with Ant . . . . . . . . . . . . . . . . . . . . . . . 633 What is Ant?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 Sample demo project and application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 Ant build files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 Ant tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636 Creating a simple build file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636 Project definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 Global properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 Contents xiii Build targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 Running Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 Where is the output?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 Rerunning Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 Forced build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 Classpath problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 Building J2EE applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 Using or importing a J2EE project. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 Ant J2EE build script. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 Running Ant for J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 Building Javadoc with Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 Running Ant outside of Application Developer. . . . . . . . . . . . . . . . . . . . . . . . 652 Preparation of the command file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 Running the command file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 Chapter 20. Profiling applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655 Profiling architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 Profiling Java processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 Agent Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 Profiling an application in the WebSphere Test Environment. . . . . . . . . . 658 Attaching to a Java process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658 Start monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 662 Performance analysis views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 Launch Java process for profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 Profiling remote processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665 Performance analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666 Package statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 Class method statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668 Method statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 Heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670 Method invocation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674 Method execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677 Execution flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680 Instance statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682 Object references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684 Some things to be aware of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685 Part 5. Team programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687 Chapter 21. Version control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689 Local history. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690 xiv WebSphere Studio Application Developer Version 5 Programming Guide ... - tailieumienphi.vn
nguon tai.lieu . vn