Java EE, Part 4 of 8: EJB 3.0 in the Enterprise page 1

Meet the expert: Susan Bryant is an experienced IT trainer and consultant with a broad array of skills. She has over 15 years experience in information systems with roles including systems consulting, project management, staff management, staff mentoring, and certified technical trainer. Susan has a strong technical knowledge of IBM WebSphere Application Server, WebSphere Portal Server, WebSphere Process Server, Lotus Domino, and web application development technologies including, Struts, JSF, EJBs and AJAX.

Prerequisites: This course is intended for intermediate to advanced Java programmers. System architects will find the advanced concepts especially beneficial in designing a framework. Students should have good Java programming knowledge and should be familiar with web application programming, including servlets and JSPs.

Runtime: 08:57:39

Course description: This course takes you beyond the fundamentals of Enterprise Java Bean (EJB 3.0) programming using Eclipse. In this course, you will learn about building message-driven Beans, EJB Security, utilizing Web Services technologies like JAX-WS, and managing distributed transactions. You will also be exposed to Java Interceptors, EJB Timer service, Hibernate JPA caching, EJB , and deployment.

Course outline:

JPAQL • Traversing the Relationship • Single Table Pros and Cons • MDBs are Stateless • Introduction • Many-to-Many • Demo: Entity and Inheritance • Demo: MDBs • JPAQL • Modeling Many-to-Many • Summary • Summary • Interface • Creating Entity Instances • Refactor • Traversing Relationship More Inheritance Strategies MDB API • Local Interface • Unidirectional One-to-Many • Introduction • Introduction • Summary • Unidirectional One-to-Many • Table Per Concrete Class • Message-Driven Bean • Creating Entity Instances • JBoss Warning Interfaces Intro to Relationships • Traversing the Relationship • Table Structure • javax.jms.MessageListener • Introduction • Demo: Complex Relationships • Pros and Cons • javax.jms.Message • Relationship Between Entities • Summary • Joined Subclasses • Lifecycle • Anatomy of a Relationship • Table Structure • Example: Message Drive Bean • Foreign Key Relationships and JPAQL • Pros and Cons • MDB - Client Example • Example Schema • Introduction • Which Approach to Use • Transactions • One-to-One Unidirectional • Relationships in JPAQL • Demo: Inheritance Strategies • Security • Creating Entity Instances • Example: Relationship • Summary • Load Balancing • Traversing the Relationship • Fetching Optimizations • Clustering and Topics • The Cascade Behavior • Lazy vs. Eager Initialization MDB Intro • Clustering and Queues • One-to-One Bidirectional • Lazy Initialization • Introduction • A Few Tips • Traversing the Relationship • Lazy Initialization Problems • Trouble with RMI/IIOP • Building a Response • Demo: Intro to Relationships • Fetch Join Query • Messaging to the Rescue • Potential Problems • Summary • Demo: Relationships and • Messaging Features • A Simple Alternative JPAQL • Message Domains • Type Checking and Messages Complex Relationships • Summary • Publish/Subscribe • Testing Message-Driven Beans • Introduction • Point-to-Point • Demo: MDB API • One-to-Many and Many-to-One Entity and Inheritance • Java Message Service • Summary • Many-to-One Unidirectional • Introduction • Overview • Creating Entity Instances • Inheritance • JMS Interfaces MDB Advanced Topics • Traversing the Relationship • Inheritance Example • Integrating JMS and EJB • Introduction • Modeling One-to-Many • Inheritance and Entities • MDBs are Different • Message-Oriented Middleware • Creating Entity Instances • Inheritance Strategies • MDBs Cannot Respond • Durable Subscription • Single Table Per Class • javax.jms.Message

(Continued on page 2)

LearnNowOnline www.LearnNowOnline.com powered by Java EE, Part 4 of 8: EJB 3.0 in the Enterprise page 2

• Specialized Message Types • Creating a Timer • Message • Poison Messages • Getting All Timers • Message Facade Using JMS • Avoiding Poison Messages • Timeout Callback Method • Message Facade Using Timer • Summary • Timer Interface • Notes About Message Facade • Example: TimerTestBean • The EJB Security • Timer and Transaction • Implementing Command • Introduction • Limitations of EJB Timers Pattern • Introduction • Demo: Timer Service • Example Command Pattern • How EJB Security Works • Summary • Summary • Protecting Web Resources • Setting Method Permission Transactions Design Patterns and EJB Data • Defining Roles • Introduction • Introduction • Defining Roles: Annotations • Need for Transactions • Session Facade Pattern • Specify Methods Permission • Transactions • JPA and Session Facade • Disable Security Check • ACID Properties Pattern • Excludes List • Transaction Components • Facade Example • RunAs Security Identity • Distributed Transactions • Pattern • RunAs: Configuration • Two Phase Commit • JPA Entity as DTO • Programmatic EJB Security • Java Transaction API • Problem with JPA Entity as • Security Role Reference • Object Transaction DTO • Demo: EJB Security • EJB Transaction Basics • Version Number Pattern • Summary • Transaction Propagation • JPA and Version Number • Transaction Outcome Pattern Web Services and EJBs • Container Managed Transaction • Primary Key Generation • Introduction • Container MT Settings • JPA and Primary Key • Web Services • Interacting with Container MTs Generation • Operation and Implementation • Example: Container MT • Fast Lane Pattern • WSDL • Transaction Attributes Support • JPA and Fast Lane Pattern • Typical Development Workflow • Bean Managed Transaction • Summary • Advantages of Web Services • Client Managed Transaction • Web Service Clients • Transaction Isolation • JAX-WS Overview • Isolation Level • JAX-WS Framework • Demo: Transactions • Java to XML Data Conversion • Summary • Main Goals of JAX-WS • JAX-WS Server Interceptors • WSDL Overview • Introduction • WSDL Document Tags • Introduction • Web Services and EJB • Interceptors • Web Service EJBs • Internal Interceptor • Annotate the Session Bean • Example: Internal Interceptor • Annotate the Methods • External Interceptors • Service Endpoint Interface • Example: Default Interceptor • Package and Deploy • Another Example • Demo: Web Services and EJBs • Class-Level Interceptor • Summary • Pre & Post Processing • Excluding Interceptors Timer Service • Interceptors on Lifecycle Call • Introduction • Blocking Calls • Container Managed Timer • Demo: Interceptors Service • Summary • EJB Timer Service • Timer Service and EJB EJB3 Design Patterns • Timer Service API • Introduction • The TimerService Interface • Introduction • Obtaining the Timer Service

LearnNowOnline www.LearnNowOnline.com powered by