JBoss at Work: A Practical Guide

book cover
JBoss at Work: A Practical Guide
By Scott Davis, Tom Marrs
Publisher: O'Reilly
Pub Date: October 2005
ISBN: 0-596-00734-5
Pages: 306

Table of Contents  | Index

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.

book cover
JBoss at Work: A Practical Guide
By Scott Davis, Tom Marrs
Publisher: O'Reilly
Pub Date: October 2005
ISBN: 0-596-00734-5
Pages: 306

Table of Contents  | Index

   About the Author
      About This Book
      Assumptions This Book Makes
      Conventions Used in This Book
      Using Code Examples
      Safari Enabled
      Comments and Questions
        Chapter 1.  Getting Started with JBoss
      Section 1.1.  Why "JBoss at Work"?
      Section 1.2.  Why JBoss?
      Section 1.3.  The Example: JAW Motors
      Section 1.4.  The Tools
      Section 1.5.  Installing JBoss
      Section 1.6.  Deploying Applications to JBoss
      Section 1.7.  Looking Ahead...
        Chapter 2.  Web Applications
      Section 2.1.  The Servlet Container
      Section 2.2.  Three-Tier Applications
      Section 2.3.  Exploring the Presentation Tier
      Section 2.4.  Building the View Cars Page
      Section 2.5.  Adding a Model and Controller
      Section 2.6.  Looking Ahead...
        Chapter 3.  Building and Deploying an EAR
      Section 3.1.  WARs Versus EARs
      Section 3.2.  Application.xml
      Section 3.3.  Common JAR
      Section 3.4.  Deploying the EAR
      Section 3.5.  Adding a DAO
      Section 3.6.  Using XDoclet
      Section 3.7.  Looking Ahead...
        Chapter 4.  Databases and JBoss
      Section 4.1.  Persistence Options
      Section 4.2.  JDBC
      Section 4.3.  JNDI
      Section 4.4.  JNDI References in web.xml
      Section 4.5.  JBoss DataSource Descriptors
      Section 4.6.  JDBC Driver JARs
      Section 4.7.  Database Checklist
      Section 4.8.  Accessing the Database Using Ant
      Section 4.9.  Creating JDBCCarDAO
      Section 4.10.  Looking Ahead...
        Chapter 5.  Hibernate and JBoss
      Section 5.1.  The Pros and Cons of ORMs
      Section 5.2.  Hibernate Mapping Files
      Section 5.3.  Hibernate MBean Service Descriptor
      Section 5.4.  Creating a HAR
      Section 5.5.  Adding the HAR to the EAR
      Section 5.6.  Creating a JNDI Lookup
      Section 5.7.  Hibernate Checklist
      Section 5.8.  HibernateCarDAO
      Section 5.9.  Adding a Car
      Section 5.10.  Editing a Car
      Section 5.11.  Deleting a Car
      Section 5.12.  Looking Ahead...
        Chapter 6.  Stateless Session Beans
      Section 6.1.  Issues with EJBs
      Section 6.2.  Should I Use EJB or Not?
      Section 6.3.  Business Tier
      Section 6.4.  Enterprise JavaBeans
      Section 6.5.  Our Example
      Section 6.6.  Iteration 1Introduce a Session Bean
      Section 6.7.  Calling the Session Bean from the Controller Servlet
      Section 6.8.  EJB-Based JNDI References in Web-Based Deployment Descriptors
      Section 6.9.  Session Bean Types
      Section 6.10.  Session Beans
      Section 6.11.  Remote Versus Local EJB Calls
      Section 6.12.  Local and Remote Interfaces
      Section 6.13.  Home Interfaces
      Section 6.14.  Reviewing Iteration 1
      Section 6.15.  Testing Iteration 1
      Section 6.16.  Iteration 2Move Business Logic Out of the Controller
      Section 6.17.  Reviewing Iteration 2
      Section 6.18.  Testing Iteration 2
      Section 6.19.  Iteration 3Buy a Car
      Section 6.20.  The AccountingDTO
      Section 6.21.  Developing the HibernateAccountingDAO
      Section 6.22.  Adding buyCar( ) to the InventoryFacadeBean
      Section 6.23.  Reviewing Iteration 3
      Section 6.24.  Testing Iteration 3
      Section 6.25.  Final Thoughts on Session Beans
      Section 6.26.  Looking Ahead ...
        Chapter 7.  Java Message Service (JMS) and Message-Driven Beans
      Section 7.1.  Sending Messages with JMS
      Section 7.2.  Upgrade the Site: Running a Credit Check
      Section 7.3.  JMS Architecture Overview
      Section 7.4.  JMS Messaging Models
      Section 7.5.  Creating a Message
      Section 7.6.  Sending the Message
      Section 7.7.  Core JMS API
      Section 7.8.  Sending a JMS Message
      Section 7.9.  JMS-Based JNDI References in Web-Based Deployment Descriptors
      Section 7.10.  Deploying JMS Destinations on JBoss
      Section 7.11.  JMS Checklist
      Section 7.12.  Message-Driven Beans (MDBs)
      Section 7.13.  MDB Checklist
      Section 7.14.  Testing the Credit Check
      Section 7.15.  Looking Ahead ...
        Chapter 8.  JavaMail
      Section 8.1.  Running a Credit Check
      Section 8.2.  Sending Email Messages with JavaMail
      Section 8.3.  Upgrading the MDB to Send an Email Message
      Section 8.4.  Sending an Email Message
      Section 8.5.  JavaMail-Based JNDI References in EJB Deployment Descriptors
      Section 8.6.  Automating JavaMail-Based JNDI References with XDoclet
      Section 8.7.  Deploying JavaMail on JBoss
      Section 8.8.  JavaMail Checklist
      Section 8.9.  Testing the Credit Check Notification Email
      Section 8.10.  Looking Ahead ...
        Chapter 9.  Security
      Section 9.1.  J2EE Security
      Section 9.2.  Web-Based Security
      Section 9.3.  Restricting Access with web.xml
      Section 9.4.  JAAS
      Section 9.5.  Deploying a JAAS-Based Security Realm on JBoss
      Section 9.6.  Testing Secure JSPs
      Section 9.7.  Protecting the Administrative Actions
      Section 9.8.  Web Security Checklist
      Section 9.9.  Integrating Web Tier and EJB Tier Security
      Section 9.10.  EJB Security
      Section 9.11.  EJB Security Checklist
      Section 9.12.  Looking Ahead ...
        Chapter 10.  Web Services
      Section 10.1.  Web Services Architecture
      Section 10.2.  JBoss 4.x and Web Services
      Section 10.3.  J2EE 1.4 and Web Services
      Section 10.4.  Implementing J2EE 1.4 Web Services
      Section 10.5.  Service Endpoint Interface (SEI)
      Section 10.6.  Modifying ejb-jar.xml
      Section 10.7.  webservices.xml
      Section 10.8.  JAX-RPC Mapping File
      Section 10.9.  WSDL File
      Section 10.10.  Set the Web Service URL
      Section 10.11.  Modifying the InventoryFacadeBean EJB
      Section 10.12.  Web Services Deployment
      Section 10.13.  Automating Web Services Deployment
      Section 10.14.  J2EE Web Services Checklist
      Section 10.15.  Testing Web Services Deployment
      Section 10.16.  Web Services Client
      Section 10.17.  Implementing a Web Service Client
      Section 10.18.  Web Service Client Checklist
      Section 10.19.  Testing the Web Service Client
      Section 10.20.  Final Thoughts on J2EE 1.4 Web Services
      Section 10.21.  Conclusion
      Section 10.22.  Congratulations!
        Appendix A.  ClassLoaders and JBoss
      Section A.1.  Namespaces
      Section A.2.  Class Loading in the J2EE
      Section A.3.  Class Loading with JBoss
      Section A.4.  Common ClassLoader Issues
      Section A.5.  ClassLoader Options
      Section A.6.  Solving ClassLoader Issues
      Section A.7.  Conclusion
        Appendix B.  Logging and JBoss
      Section B.1.  Jakarta Commons Logging (JCL) API
      Section B.2.  Apache Log4J
      Section B.3.  Adding Application-Specific Properties to System Properties
      Section B.4.  Configuring Log4J with a Configuration File
      Section B.5.  Loading Resources from the CLASSPATH
      Section B.6.  Logging Deployment
      Section B.7.  Logging Checklist
      Section B.8.  Testing Logging
      Section B.9.  Conclusion
        Appendix C.  JAAS Tutorial
      Section C.1.  JAAS
      Section C.2.  Client-Side JAAS
      Section C.3.  Conclusion