877-277-2477
info@capstonecourseware.com
163-WL. EJB for the WebLogic Server
Version 10.3.0

Book cover

This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional business components. EJB 3.0 has reinvigorated this area of Java enterprise development, with dramatic improvements in ease of use and smooth integration with servlet-based or JSF web applications. This course treats the 3.0 specification, with a few notes on 2.1 compatibility but an emphasis on doing things the 3.0 way.

Students get an overview of the EJB rationale and architecture, and then dive right into creating session beans and entities. The new dependency-injection features of EJB3 cause perhaps the most confusion, so we work through a chapter devoted explicitly to DI and JNDI, and basically how components find each other to make an application. We study entities and the Java Persistence API in depth, and get a look at message-driven beans as well. The latter phase of the course covers advanced topics including transactions, security, and interceptors.

This version of the course is designed to work with Oracle® WebLogic 10.3: labs are all tested on this platform, and the coursebook includes sections covering WebLogic specifics including administrative features (and quirks), compliance issues, and extended features.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. No association with or endorsement by Oracle Corporation is implied by the use of these terms in this document.

A bridge module is also available that illustrates how JavaServer Faces (JSF) web applications can work with EJBs and Java Persistence API entities; this brief presentation can easily be added to the end of the class and works especially well to cap off a week of training using this course and one of our JSF courses.

Prerequisites

  • Solid Java programming skills and understanding of OO Java and Java-5 language features is essential. Course 103 is excellent preparation for this course.
  • Experience with developing Java web applications is very helpful for this course, but not strictly required.
  • Some knowledge of XML will be useful for writing the occasional deployment descriptor, but is not required. Course 501 is recommended for those who would like to get more familiar with XML before pursuing this course.

Learning Objectives

  • Understand the role of EJB in the broader Java EE platform.
  • Describe the features that are implemented by an EJB container on behalf of application components.
  • Build stateless session beans as part of a service layer or SOA.
  • Build JPA entities to represent persistent data records within the Java application.
  • Develop systems of entities to manage complex data models including 1:1, 1:N, and N:N associations.
  • Manage transactional behavior of the application through declarative and programmatic techniques.
  • Invoke EJB sessions from Java web applications.
  • Use dependency injection and JNDI names to assemble complex web/EJB systems with minimal fuss and maximal flexibility.
  • Implement message-driven beans to process queued messages asynchronously.
  • Declare and/or program transaction boundaries, persistence contexts, and exception handling to properly control persistence logic.
  • Apply role-based authorization policies to EJBs.
  • Build interceptors to perform generic processing before, after, or around EJB business-method invocations.
  • Use EJB timers to defer processing or establish regularly scheduled tasks.

Timeline: 5 days.

Server Support: WebLogic

  • This version of the course works with the WebLogic server. Our Java EE courses are available in variants that support various server products, including Tomcat, GlassFish, JBoss, and WebLogic. For more details, and to find a desired server-specific version of a course, see our server-support matrix.

IDE Support: WebLogic Workshop

  • In addition to the primary lab files, an optional overlay is available that adds support for WebLogic Workshop. Students can code and compile from within the IDE; final build and deploy is done from DOS using Ant, and applications are tested using a local web browser. See also our orientation to Using Capstone's Eclipse Overlays, and please be advised that this is an optional feature; it is not a separate version of the course, and the course itself does not contain explicit Eclipse-specific lab instructions.

Chapter 1. Overview

  • Enterprise Applications
  • Containers and Objects
  • Three Containers
  • Remote Connectivity
  • Scalability and Availability
  • Security
  • Transaction Control

Chapter 2. Architecture

  • What is an EJB?
  • Types of Beans
  • Inversion of Control
  • The Bean-Type Annotations
  • Dependency Injection
  • The @EJB Annotation
  • The WebLogic Server
  • The Administration Console
  • Deploying EJB Applications
  • Configuring Data Sources
  • Development Cycle and Roles

Chapter 3. Session Beans

  • Interface/Implementation Split
  • Stateful vs. Stateless
  • The @Stateless Annotation
  • Lifecycle and State Transitions
  • Session Context
  • The @Stateful Annotation
  • State Transitions
  • Singletons and Pools

Chapter 4. Entities

  • The Java Persistence API
  • Persistence Annotations
  • Configuration by Exception
  • ORM Annotations
  • The EntityManager
  • Acquiring and Using the EntityManager
  • persistence.xml
  • @Enumerated and @Temporal Types

Chapter 5. Associations

  • Associations, Cardinality, and Ownership
  • Annotations
  • Unidirectional vs. Bidirectional
  • The @Embedded Annotation

Chapter 6. Java Persistence Query Language

  • OO Query Languages
  • The FROM Clause and Directionality
  • The WHERE Clause
  • The SELECT Clause
  • Joins
  • Aggregates and Grouping
  • Ordering

Chapter 7. Dependency Injection

  • Interdependent Systems
  • The Factory Pattern
  • The Service Locator Pattern
  • Dependency Injection
  • Injection by Magic?
  • Injection by Type
  • Injection by Name
  • The Component Environment
  • Deployment Descriptors
  • Impact on Stateful Session Beans
  • JNDI
  • Connecting to a Remote Bean
  • Using mappedName
  • Who Can Declare Dependencies

Chapter 8. Message-Driven Beans

  • Asynchronous Messaging
  • The Java Message Service
  • Message-Driven Beans
  • Message Types
  • Injecting JMS Queues
  • JMS Configuration in WebLogic

Chapter 9. Transactions

  • ACID Transactions
  • The EntityTransaction Interface
  • EJB Transaction Attributes
  • Persistence Contexts
  • Extended Persistence Contexts
  • Isolation Levels
  • Application-Managed Persistence
  • The SessionSynchronization Interface
  • Impact on JMS and MDBs

Chapter 10. Exception Handling

  • Java Exceptions
  • Remote Exceptions
  • EJB Exception Handling
  • System Exceptions
  • Application Exceptions
  • Transaction Control

Chapter 11. Security

  • Authentication and Authorization
  • Declarative Authorization
  • Abstract Roles
  • Concrete Realms
  • Configuring WebLogic User Realms
  • Programmatic Authorization
  • Run-As Identity

Chapter 12. Interceptors

  • EJB and AOP
  • The Intercepting Filter Pattern
  • EJB Interceptors
  • Annotating Interceptor Classes
  • The InvocationContext Interface
  • Binding Interceptors to Targets
  • Shared Lifecycle and Context
  • Interceptors and MDBs

Chapter 13. Timers

  • The EJB Timer Service
  • The TimerService Interface
  • The Timer Interface
  • Timeout Methods
  • Timer Handles
  • Transactions and Timers

Appendix A. Learning Resources

Appendix B. Quick Reference: Java EE Annotations

System Requirements

Hardware Requirements (Minimum) 1 gHz, 1 gB RAM, 3 gB disk space.
Hardware Requirements (Recommended) 2 gHz, 2 gB RAM, 5 gB disk space.
Operating System Tested on Windows XP Professional.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements Course software should be viable on all systems for which WebLogic 10.3 is available.