Synopses & Reviews
Consisting of a number of well-known open source products, JBoss is more a family of interrelated services than a single monolithic application. But, as with any tool that's as feature-rich as JBoss, there are number of pitfalls and complexities, too.
Most developers struggle with the same issues when deploying J2EE applications on JBoss: they have trouble getting the many J2EE and JBoss deployment descriptors to work together; they have difficulty finding out how to get started; their projects don't have a packaging and deployment strategy that grows with the application; or, they find the Class Loaders confusing and don't know how to use them, which can cause problems.
JBoss at Work: A Practical Guide helps developers overcome these challenges. As you work through the book, you'll build a project using extensive code examples. You'll delve into all the major facets of J2EE application deployment on JBoss, including JSPs, Servlets, EJBs, JMS, JNDI, web services, JavaMail, JDBC, and Hibernate. With the help of this book, you'll:
- Implement a full J2EE application and deploy it on JBoss
- Discover how to use the latest features of JBoss 4 and J2EE 1.4, including J2EE-compliant web services
- Master J2EE application deployment on JBoss with EARs, WARs, and EJB JARs
- Understand the core J2EE deployment descriptors and how they integrate with JBoss-specific descriptors
- Base your security strategy on JAAS
Written for Java developers who want to use JBoss on their projects, the book covers the gamut of deploying J2EE technologies on JBoss, providing a brief survey of each subject aimed at the working professional with limited time.
If you're one of the legions of developers who have decided to give JBoss a try, then JBoss at Work: A Practical Guide is your next logical purchase. It'll show you in plain language how to use the fastest growing open source tool in the industry today. If you've worked with JBoss before, this book will get you up to speed on JBoss 4, JBoss WS (web services), and Hibernate 3.
Synopsis
As developers work through the book, they'll build a project using extensive code examples and delving into all the major facets of J2EE application deployment on JBoss, including JSPs, Servlets, EJBs, JMS, JNDI, web services, JavaMail, JDBC, and Hibernate.
About the Author
Scott M. Davis, Ph.D., is an internist and addiction medicine specialist. A graduate of Boston University School of Medicine, Dr. Davis has served as the only full-time Addiction Medicine Physician in the world renowned Betty Ford Center in Rancho Mirage. Dr. Davis is widely regarded as a leading expert in the field of addiction medicine, garnering requests from numerous professional organizations including the California Board of Registered Nursing, American Society for Addiction Medicine (ASAM), and the U.S. Government's Center for Substance Abuse Treatment (CSAT). At the Betty Ford Center, he developed a protocol for opiate detoxification, which has become recognized as the national model of treatment for opiate addiction. He has been published in "The Journal of Addictive Diseases", "The American Journal of Cardiology, " and "Men's Health" magazines.
Table of Contents
About the Author; Preface; Audience; About This Book; Assumptions This Book Makes; Conventions Used in This Book; Using Code Examples; Safari Enabled; Comments and Questions; Acknowledgments; Chapter 1: Getting Started with JBoss; 1.1 Why "JBoss at Work"?; 1.2 Why JBoss?; 1.3 The Example: JAW Motors; 1.4 The Tools; 1.5 Installing JBoss; 1.6 Deploying Applications to JBoss; 1.7 Looking Ahead...; Chapter 2: Web Applications; 2.1 The Servlet Container; 2.2 Three-Tier Applications; 2.3 Exploring the Presentation Tier; 2.4 Building the View Cars Page; 2.5 Adding a Model and Controller; 2.6 Looking Ahead...; Chapter 3: Building and Deploying an EAR; 3.1 WARs Versus EARs; 3.2 Application.xml; 3.3 Common JAR; 3.4 Deploying the EAR; 3.5 Adding a DAO; 3.6 Using XDoclet; 3.7 Looking Ahead...; Chapter 4: Databases and JBoss; 4.1 Persistence Options; 4.2 JDBC; 4.3 JNDI; 4.4 JNDI References in web.xml; 4.5 JBoss DataSource Descriptors; 4.6 JDBC Driver JARs; 4.7 Database Checklist; 4.8 Accessing the Database Using Ant; 4.9 Creating JDBCCarDAO; 4.10 Looking Ahead...; Chapter 5: Hibernate and JBoss; 5.1 The Pros and Cons of ORMs; 5.2 Hibernate Mapping Files; 5.3 Hibernate MBean Service Descriptor; 5.4 Creating a HAR; 5.5 Adding the HAR to the EAR; 5.6 Creating a JNDI Lookup; 5.7 Hibernate Checklist; 5.8 HibernateCarDAO; 5.9 Adding a Car; 5.10 Editing a Car; 5.11 Deleting a Car; 5.12 Looking Ahead...; Chapter 6: Stateless Session Beans; 6.1 Issues with EJBs; 6.2 Should I Use EJB or Not?; 6.3 Business Tier; 6.4 Enterprise JavaBeans; 6.5 Our Example; 6.6 Iteration 1--Introduce a Session Bean; 6.7 Calling the Session Bean from the Controller Servlet; 6.8 EJB-Based JNDI References in Web-Based Deployment Descriptors; 6.9 Session Bean Types; 6.10 Session Beans; 6.11 Remote Versus Local EJB Calls; 6.12 Local and Remote Interfaces; 6.13 Home Interfaces; 6.14 Reviewing Iteration 1; 6.15 Testing Iteration 1; 6.16 Iteration 2--Move Business Logic Out of the Controller; 6.17 Reviewing Iteration 2; 6.18 Testing Iteration 2; 6.19 Iteration 3--Buy a Car; 6.20 The AccountingDTO; 6.21 Developing the HibernateAccountingDAO; 6.22 Adding buyCar() to the InventoryFacadeBean; 6.23 Reviewing Iteration 3; 6.24 Testing Iteration 3; 6.25 Final Thoughts on Session Beans; 6.26 Looking Ahead ...; Chapter 7: Java Message Service (JMS) and Message-Driven Beans; 7.1 Sending Messages with JMS; 7.2 Upgrade the Site: Running a Credit Check; 7.3 JMS Architecture Overview; 7.4 JMS Messaging Models; 7.5 Creating a Message; 7.6 Sending the Message; 7.7 Core JMS API; 7.8 Sending a JMS Message; 7.9 JMS-Based JNDI References in Web-Based Deployment Descriptors; 7.10 Deploying JMS Destinations on JBoss; 7.11 JMS Checklist; 7.12 Message-Driven Beans (MDBs); 7.13 MDB Checklist; 7.14 Testing the Credit Check; 7.15 Looking Ahead ...; Chapter 8: JavaMail; 8.1 Running a Credit Check; 8.2 Sending Email Messages with JavaMail; 8.3 Upgrading the MDB to Send an Email Message; 8.4 Sending an Email Message; 8.5 JavaMail-Based JNDI References in EJB Deployment Descriptors; 8.6 Automating JavaMail-Based JNDI References with XDoclet; 8.7 Deploying JavaMail on JBoss; 8.8 JavaMail Checklist; 8.9 Testing the Credit Check Notification Email; 8.10 Looking Ahead ...; Chapter 9: Security; 9.1 J2EE Security; 9.2 Web-Based Security; 9.3 Restricting Access with web.xml; 9.4 JAAS; 9.5 Deploying a JAAS-Based Security Realm on JBoss; 9.6 Testing Secure JSPs; 9.7 Protecting the Administrative Actions; 9.8 Web Security Checklist; 9.9 Integrating Web Tier and EJB Tier Security; 9.10 EJB Security; 9.11 EJB Security Checklist; 9.12 Looking Ahead ...; Chapter 10: Web Services; 10.1 Web Services Architecture; 10.2 JBoss 4.x and Web Services; 10.3 J2EE 1.4 and Web Services; 10.4 Implementing J2EE 1.4 Web Services; 10.5 Service Endpoint Interface (SEI); 10.6 Modifying ejb-jar.xml; 10.7 webservices.xml; 10.8 JAX-RPC Mapping File; 10.9 WSDL File; 10.10 Set the Web Service URL; 10.11 Modifying the InventoryFacadeBean EJB; 10.12 Web Services Deployment; 10.13 Automating Web Services Deployment; 10.14 J2EE Web Services Checklist; 10.15 Testing Web Services Deployment; 10.16 Web Services Client; 10.17 Implementing a Web Service Client; 10.18 Web Service Client Checklist; 10.19 Testing the Web Service Client; 10.20 Final Thoughts on J2EE 1.4 Web Services; 10.21 Conclusion; 10.22 Congratulations!; Appendix A: ClassLoaders and JBoss; A.1 Namespaces; A.2 Class Loading in the J2EE; A.3 Class Loading with JBoss; A.4 Common ClassLoader Issues; A.5 ClassLoader Options; A.6 Solving ClassLoader Issues; A.7 Conclusion; Appendix B: Logging and JBoss; B.1 Jakarta Commons Logging (JCL) API; B.2 Apache Log4J; B.3 Adding Application-Specific Properties to System Properties; B.4 Configuring Log4J with a Configuration File; B.5 Loading Resources from the CLASSPATH; B.6 Logging Deployment; B.7 Logging Checklist; B.8 Testing Logging; B.9 Conclusion; Appendix C: JAAS Tutorial; C.1 JAAS; C.2 Client-Side JAAS; C.3 Conclusion; Colophon;