HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
If you need to understand how JBoss works, why not learn it from the people who created it? JBoss 4.0 — The Official Guide is the authoritative resource recognized as the official print documentation for JBoss 4.0. The only book for advanced JBoss users, this guide presents a complete understanding to configuring and using JBoss 4.0. It is fully up-to-date with the new features and changes in JBoss 4.0, including those used to integrate development with Eclipse, incorporate Aspect-Oriented Programming and implement J2EE 1.4 functionality months ahead of the commercial competition. Get under the hood and explore everything that JBoss 4.0 can offer you with JBoss 4.0 — The Official Guide.
Aspect-Oriented Programming: A Tool for Internationalization
Building a Custom JBoss Login Module
Introduction.
1. Installing and Building the JBoss Server.
Getting the Binary Files
Prerequisites
Installing the Binary Package
Directory Structure
The Default Server Configuration File Set
conf/jboss-minimal.xml
conf/jboss-service.xml
conf/jboss.web
conf/jndi.properties
conf/log4j.xml
conf/login-config.xml
conf/server.policy
conf/standardjaws.xml
conf/standardjboss.xml
conf/standardjbosscmp-jdbc.xml
conf/xmdesc/-mbean.xml
deploy/bsh-deployer.xml
deploy/cache-invalidation-service.xml
deploy/client-deployer-service.xml
deploy/ear-deployer.xml
deploy/ejb-deployer.xml
deploy/hsqldb-ds.xml
deploy/http-invoker.sar
deploy/jboss-aop.deployer
deploy/jboss-hibernate.deployer
deploy/jboss-local-jdbc.rar
deploy/jboss-ws4ee.sar
deploy/jboss-xa-jdbc.rar
deploy/jbossjca-service.sar
deploy/jbossweb-tomcat50.sar
deploy/jms/hsqldb-jdbc2-service.xml
deploy/jms/jbossmq-destinations-service.xml
deploy/jms/jbossmq-httpil.sar
deploy/jms/jbossmq-service.xml
deploy/jms/jms-ds.xml
deploy/jms/jms-ra.rar
deploy/jms/jvm-il-service.xml
deploy/jms/uil2-service.xml
deploy/jmx-console.war
deploy/jmx-invoker-service.sar
deploy/mail-ra.rar
deploy/mail-service.xml
deploy/management/console-mgr.sar and web-console.war
deploy/monitoring-service.xml
deploy/properties-service.xml
deploy/scheduler-service.xml and schedule-manager-service.xml
deploy/sqlexception-service.xml
deploy/uuid-key-generator.sar
Basic Installation Testing
Booting from a Network Server
Building the Server from Source Code
Accessing the JBoss CVS Repositories at SourceForge
Understanding CVS
Anonymous CVS Access
Obtaining a CVS Client
Building the JBoss Distribution Using the Source Code
Building the JBoss Distribution Using the CVS Source Code
An Overview of the JBoss CVS Source Tree
Using the JBossTest Unit Testsuite
2. The JBoss JMX Microkernel.
JMX
An Introduction to JMX
The JBoss JMX Implementation Architecture
The JBoss ClassLoader Architecture
Class Loading and Types in Java
JBoss XMBeans
Connecting to the JMX Server
Inspecting the Server: The JMX Console Web Application
Connecting to JMX Using RMI
Command-Line Access to JMX
Connecting to JMX Using Any Protocol
Using JMX as a Microkernel
The Startup Process
JBoss MBean Services
Writing JBoss MBean Services
Deployment Ordering and Dependencies
The JBoss Deployer Architecture
Deployers and Class Loaders
Exposing MBean Events via SNMP
The Event to Trap Service
Remote Access to Services, Detached Invokers
A Detached Invoker Example: The MBeanServer Invoker
Adaptor Service
JRMPInvoker: RMI/JRMP Transport
PooledInvoker: RMI/Socket Transport
IIOPInvoker: RMI/IIOP Transport
JRMPProxyFactory: Building Dynamic JRMP Proxies
HttpInvoker: RMI/HTTP Transport
JRMPInvoker: Clustered RMI/JRMP Transport
HttpInvoker: Clustered RMI/HTTP Transport
HttpProxyFactory: Building Dynamic HTTP Proxies
Steps to Expose Any RMI Interface via HTTP
3. Naming on JBoss.
An Overview of JNDI
The JNDI API
J2EE and JNDI: The Application Component Environment
The JBossNS Architecture
The Naming InitialContext Factories
Accessing JNDI over HTTP
Accessing JNDI over HTTPS
Securing Access to JNDI over HTTP
Securing Access to JNDI with a Read-only Unsecured Context
Additional Naming MBeans
4. Transactions on JBoss.
Transaction and JTA Overview
Pessimistic and Optimistic Locking
The Components of a Distributed Transaction
The Two-phase XA Protocol
Heuristic Exceptions
Transaction Identities and Branches
JBoss Transaction Internals
Adapting a Transaction Manager to JBoss
The Default Transaction Manager
UserTransaction Support
5. EJBs on JBoss.
The EJB Client-Side View
Specifying the EJB Proxy Configuration
The EJB Server-Side View
Detached Invokers: The Transport Middlemen
The HA JRMPInvoker: Clustered RMI/JRMP Transport
The HA HttpInvoker: Clustered RMI/HTTP Transport
The EJB Container
The EJBDeployer MBean
The Container Plug-in Framework
Entity Bean Locking and Deadlock Detection
Why JBoss Needs Locking
The Entity Bean Life Cycle
Default Locking Behavior
Pluggable Interceptors and Locking Policy
Deadlocking
Advanced Configurations and Optimizations
Running Within a Cluster
Troubleshooting
6. Messaging on JBoss.
JMS Examples
A Point-to-Point Example
A Pub-Sub Example
An Example of a Pub-Sub with a Durable Topic
An Example of P2P with MDB
JBossMQ Overview
The Invocation Layer Services
The SecurityManager Service
The DestinationManager Service
The MessageCache Service
The StateManager Service
The PersistenceManager Service
Destinations
JBossMQ Configuration and MBeans
The org.jboss.mq.il.jvm.JVMServerILService MBean
The org.jboss.mq.il.uil2.UILServerILService MBean
The org.jboss.mq.il.http.HTTPServerILService MBean
The org.jboss.mq.server.jmx.Invoker MBean
The org.jboss.mq.server.jmx.InterceptorLoader MBean
The org.jboss.mq.sm.jdbc.JDBCStateManager MBean
The org.jboss.mq.security.SecurityManager MBean
The org.jboss.mq.server.jmx.DestinationManager MBean
The org.jboss.mq.server.MessageCache MBean
The org.jboss.mq.pm.jdbc2.PersistenceManager MBean
Destination MBeans
Specifying the MDB JMS Provider
The org.jboss.jms.jndi.JMSProviderLoader MBean
The org.jboss.jms.asf.ServerSessionPoolLoader MBean
Integrating Non-JBoss JMS Providers
7. Connectors on JBoss.
JCA Overview
An Overview of the JBossCX Architecture
The BaseConnectionManager2 MBean
The RARDeployment MBean
The JBossManagedConnectionPool MBean
The CachedConnectionManager MBean
A Sample Skeleton of a JCA Resource Adaptor
Configuring JDBC Datasources
Configuring Generic JCA Adaptors
8. Security on JBoss.
J2EE Declarative Security Overview
Security References
Security Identity
Security Roles
EJB Method Permissions
Web Content Security Constraints
Enabling Declarative Security in JBoss
An Introduction to JAAS
What Is JAAS?
The JBoss Security Model
Enabling Declarative Security in JBoss, Revisited
The JBossSX Architecture
How JaasSecurityManager Uses JAAS
The JaasSecurityManagerService MBean
The JaasSecurityDomain MBean
An XML JAAS Login Configuration MBean
The JAAS Login Configuration Management MBean
Using and Writing JBossSX Login Modules
The DynamicLoginConfig Service
The Secure Remote Password (SRP) Protocol
Providing Password Information for SRP
Inside the SRP Algorithm
Running JBoss with a Java 2 Security Manager
Using SSL with JBoss and JSSE
Configuring JBoss for Use Behind a Firewall
Securing the JBoss Server
The jmx-console.war Service
The web-console.war Service
The http-invoker.sar Service
The jmx-invoker-adaptor-server.sar Service
9. Web Applications.
The Tomcat Service
The Tomcat server.xml File
The Connector Element
The Engine Element
The Host Element
The DefaultContext Element
The Logger Element
The Valve Element
Using SSL with the JBoss/Tomcat Bundle
Setting the Context Root of a Web Application
Setting Up Virtual Hosts
Serving Static Content
Using Apache with Tomcat
Using Clustering
Integrating Third-Party Servlet Containers
The AbstractWebContainer Class
10. MBean Services Miscellany.
System Properties Management
Property Editor Management
Services Binding Management
Scheduling Tasks
The org.jboss.varia.scheduler.Scheduler MBean
The Log4j Service MBean
RMI Dynamic Class Loading
11. The CMP Engine.
Example Code
Enabling CMP Debug Logging
Running the Examples
The jbosscmp-jdbc Structure
Entity Beans
Entity Mapping
CMP Fields
CMP Field Declaration
CMP Field Column Mapping
Read-only Fields
Auditing Entity Access
Dependent Value Classes
Container-Managed Relationships
CMR-field Abstract Accessors
Relationship Declaration
Relationship Mapping
Declaring Queries
Declaring Finders and Selects
Declaring EJB-QL Queries
Overriding the Mapping of EJB-QL to SQL
JBossQL
DynamicQL
DeclaredSQL
EJB-QL 2.1 and SQL92 Queries
BMP Custom Finders
Optimized Loading
A Loading Scenario
Load Groups
Read-ahead
The Loading Process
Commit Options
The Eager-Loading Process
The Lazy-Loading Process
Lazy-Loading Result Sets
Transactions
Optimistic Locking
Entity Commands and Primary Key Generation
Existing Entity Commands
JBoss Global Defaults
A Sample jbosscmp-jdbc.xml Defaults Declaration
Datasource Customization
Type Mapping
Function Mapping
Mapping
User Type Mappings
12. Web Services.
JAX-RPC Service Endpoints
Enterprise JavaBean Endpoints
Web Services Clients-A JAX-RPC Client
Service References
13. Hibernate.
The Hibernate MBean
Hibernate Archives
Using Hibernate Objects
Using a HAR File Inside an EAR File
The HAR Deployer
14. Aspect-Oriented Programming (AOP) Support.
JBoss AOP: EJB-Style Services for Plain Java Objects
Why AOP?
Basic Concepts of AOP
Joinpoints and Invocation
Advice and Aspects
Introducing Pointcuts
Introductions and Mixins
Building JBoss AOP Applications
Compiling to Bytecode
Compiling Annotations
AOP Instrumentation
The JBoss AOP Deployer
Installing the Latest jboss-aop.deployer Service
Configuring the AOP Service
The Prepackaged Aspects Library
Packaging and Deploying AOP Applications to JBoss
Using Prepackaged Aspects
Developing Your Own Aspects
Packaging and Deploying Custom Aspects
Appendix A. The GNU Lesser General Public License (LGPL).
GNU General Public License
Preamble
Terms and Conditions for Copying, Distribution, and Modification
How to Apply These Terms to Your New Programs
Appendix B. Example Installation.
Index.