Training > Courseware > J2EE on JBoss

Summary

J2EE on JBoss courseware offers an extensive hands-on overview of developing enterprise J2EE applications on JBoss application server platform. This courseware covers JBoss best practices, administration and configuration issues, and how to architect web applications that make the most advantage of this platform.

Description

Length

5 days, 347 pages

Audience

Java application developers and programmers with at least 2 to 3 years of experience who are or will be involved in enterprise application development.

Prerequisites

Before taking a class based on this courseware, students should have an advanced knowledge of the Java programming language. Prior exposure to web-development technologies is also beneficial.

Additional Notes

Includes a CD with the relevant examples and labs.

Outline

Below is the list of modules that are covered in this courseware. A class based on this courseware is typically delivered in five days but it can be customized to fit specific developer training needs.

Module 1 - J2EE

  • Overview of J2EE
  • Benefits of J2EE

Module 2 - JBoss

  • Overview of JBoss Organization
  • Overview of JBoss Application Server
  • Highlights of JBoss AS
  • JBoss AS Architecture
  • JBoss AS Requirements

Module 3 - Installation

  • Getting, installing, and configuring Java
  • Getting JBoss
  • Building from source
  • Installing JBoss
    • Unpacking
    • Using the installer

Module 4 - Directory Structure

  • Examining JBoss AS directory structure
  • Explaining JBoss AS files, scripts, and utilities
  • Understanding JBoss AS configuration ("server") sets
  • JBoss AS logging

Module 5 - Starting/Stopping

  • Using the run script
  • Verifying server startup
  • Stopping (shutting down), including remote stopping
  • Remote starting (netboot)

Module 6 - Deployment

  • J2EE development-deployment life-cycle
  • J2EE deployment descriptors
  • Deployment on JBoss AS
  • Deployers on JBoss AS
  • Deployment Dependencies
  • Hot vs. Cold Deployment
  • Looking at conf/jboss-service.xml and XMBeans

Module 7 - JBoss-IDE

  • Overview of JBoss IDE plug-ins for Eclipse
  • Configuring JBoss IDE
  • Controlling JBoss AS from Eclipse

Module 8 - Web Tier

  • Overview of web technologies (CGI, Cold Fusion, PHP, APS, Servet/JSP)
  • CGI vs. Servlets/JSPs
  • Advantages of Servlets
  • J2EE Web Applications
  • Java Servlets
    • Life-cycle
    • API
    • Processing requests
    • Generating responses
    • Defining and mapping in WEB-INF/web.xml
    • Web Application structure
    • Deploying web applications
    • Development through JBoss IDE
    • Automation with XDoclet
    • Serving Requests with multiple resources
    • Overview of MVC
    • Scoped storage: request, session, application
    • Initializing applications
    • Thread-safety
    • Generating binary responses
  • Welcome files
  • Error documents
  • Introduction to Servlet Filters
    • Life-cycle
    • API
    • Defining and mapping in WEB-INF/web.xml
  • JavaServer Pages
    • Life-cycle
    • API
    • Development through Eclipse
    • Packaging
    • Implicit objects
    • Directives, scriptlets, expressions, declarations, comments
    • Actions
    • Introduction to JSP tag libraries
    • Using JSP Standard Tag Library (JSTL)
    • Expression Language (EL)
  • Tomcat Web Container
    • Overview of Tomcat
    • Architecture
    • Configuration (jboss-service.xml and server.xml)
    • Tomcat's web.xml
    • Serving static content
    • Virtual hosting
    • Web access logging

Module 9 - JNDI

  • Overview of JNDI
  • Role of JNDI in J2EE
  • JNDI API
  • Using JNDI
  • JNDI resources
  • JNDI on JBoss AS

Module 10 - JavaMail

  • Overview of JavaMail
  • JavaMail API
  • JavaMail service on JBoss AS
  • Sending (SMTP) and fetching (IMAP/POP) mail

Module 11 - JMX

  • Overview of Java Management Extensions
  • JMX Architecture (layers)
  • JMX MBeans
  • JMX on JBoss AS
  • JMX Console
  • Twiddle tool (JMX command-line client)
  • Developing MBeans through JBoss IDE and XDoclet
  • Packaging service archive (SAR) files
  • Web Console
  • JBoss Monitoring

Module 13 - Class Loading

  • Java Class Identity
  • J2EE Class Loading Requirements
  • Class Loading on JBoss
  • Default Class Search Order
  • Scoped Class Search Order
  • Log4j Issues
  • Common Problems With Class Loading

Module 13 - Database Integration

  • Managed Database Connection Pools
  • Referencing database connection pool resources
  • Installing JDBC drivers
  • Defining database resources in JBoss AS
  • Resource Mapping
  • MySQL example
  • JBoss embedded Hypersonic database
  • Detecting DB Connection Leaks

Module 14 - JMS

  • Overview of Java Messaging Service
  • JMS Architecture
  • JMS Messaging Domains (Point-to-Point, Publish and Subscribe)
  • JMS Message Consumption
  • JMS API
  • Developing with JMS
  • JMS on JBoss AS
    • Configuration
    • Creating destinations (queue and topic)

Module 15 - EJB

  • Overview of Enterprise JavaBean technology
  • EJB Container
  • Benefits of EJB
  • Types of EJBs (session, entity, message-driven)
  • Entity bean (persistence, transactions, primary keys, relationships)
  • EJB client interfaces (remote, local, web service)
  • EJB life-cycle (entity, stateful session, stateless session, message-driven)
  • Developing stateless session beans through JBoss IDE
    • Initialization, business methods, and "plumbing"
    • Automating with XDoclet
    • Developing EJB clients (local, remote)
    • Packaging with enterprise Archive (EAR) files
    • Testing
  • Developing message-driven beans through JBoss IDE
    • MDB destination
    • Accepting requests
    • Linking EJBs
    • Using external resources
    • MDB clients
    • Testing
  • Drawbacks of EJBs

Module 16 - Transactions

  • Overview of Transactions (ACID properties)
  • Resource Locking (pessimistic vs. optimistic)
  • Distributed Transaction Components (JTA API)
  • Two-phase XA protocol
  • Heuristic Exceptions
  • Transactions on JBoss AS
  • Container-Managed Transactions (CMT)
  • User Transactions

Module 17 - Web Services

  • Overview of Web Services
  • Service Oriented Architecture (SOA)
  • Overview of JAX-RPC
  • Web Services on JBoss AS
  • Servlet-based web service example
    • Creating end-point
    • Generating descriptors (including WSDL) using WSDP
    • Packaging and deploying
  • Creating web service client

Module 18 - Security

  • Filtering Clients by Source (IP address or hostname)
  • Authentication and Authorization using JAAS
    • Role-based declarative security
    • Requiring authentication and authorization in deployment descriptors
    • JBoss plain-text login module
    • JBoss database login module (example with MySQL)
    • Linking to security domain
    • Securing passwords with MD5
    • FORM-based login (including the handling of errors)
  • Configuring JBoss AS for SSL
    • Generating SSL certificates
    • Tomcat's SSL connector
    • Requiring SSL in web applications
  • Securing JBoss AS
    • Running with low-privileges
    • File-system security
    • Securing console applications/toos and services
    • Running with Java Security Manager
    • Running behind a firewall

Module 19 - Performance

  • JVM tuning (garbage collection optimization)
  • Tuning Tomcat (connectors, valves, JSPs, etc.)
  • RMI tuning
  • Tuning other JBoss services (including logging)
  • Slimming JBoss AS (removing unnecessary services)

Module 20 - Clustering

  • Examining requirements: fault-tolerance / high-availability (HA) and scalability
  • Exploring web system architectures
  • Fronting JBoss with Apache (using mod_jk)
  • Enabling simple load-balancing
  • Using sticky sessions
  • Configuring clustered session replication
  • Clustering of JBoss services (HA-JNDI, HA-JMS, etc.)
  • Cluster Farming Deployment