Java EE 7: Back-End Server Application Development (D85116) – Outline

Detailed Course Outline

Java Platform, Enterprise Edition
  • The Java EE Platform
  • The needs of enterprise application developers
  • Java EE specifications
  • A comparison of services and libraries
  • Java EE application tiers and architecture
Enterprise Development Tools and Applications
  • The purpose of an application server
  • Properties of Java EE components
  • The development process of Java EE applications
  • Configuring and deploying Java EE applications
Java Beans, Annotations and Logging
  • Java SE features in Java EE applications
  • Creating POJO JavaBeans components
  • Using logging
  • Using common Java annotations
  • Developing custom annotations
  • The role of annotations in Java EE applications
XML Programming with JAXB
  • The benefits of XML
  • XML namespaces and schemas
  • Java XML APIs
  • The Java XML Binding API (JAXB)
  • Reading and writing XML documents with JAXB
  • xjc: the JAXB binding compiler
  • JAXB annotations
SOAP Web Services with JAX-WS
  • Overview of SOAP
  • Overview of WSDL files
  • Comparing WSDL-first and code-first design approaches
  • Writing a JAX-WS web service
  • Generating WSDL from a Java class
  • Creating JAX-WS web service clients
Java Naming and Directory (JNDI) Services
  • What is JNDI?
  • Naming service concepts
  • Directory service concepts
  • JNDI packages
  • Using JNDI to look up JDBC and EJB components in Java EE
The EJB Component Model
  • The role EJB components play in Java EE appplications
  • The role of the EJB container
  • EJB changes in Java EE 7
  • Local, distributed and no-client EJB client access views
  • EJB Session types
  • Stateless, Stateful and Singleton EJBs
  • Session bean packaging and deploying
Contexts and Dependency Injection
  • What is dependency injection?
  • Using Qualifiers
  • The beans.xml file and Alternatives
  • Using Producers and Disposers
  • Using Interceptors
  • Using Events and Stereotypes
Java Message Service
  • What is the Java Message Service?
  • Why do we need JMS?
  • JMS Overview
  • Point-to-point messaging architecture
  • Publish/subscribe messaging architecture
  • Message producers and consumers
  • Queues and topics
  • Durable vs. non-durable subscriptions
Message-driven Beans
  • The life cycle of a message-driven bean
  • Creating a message-driven bean
  • Creating life cycle handlers for message-driven beans
  • Configuring a message-driven bean
Java EE Concurrency
  • Concurrency in Java EE
  • Asynchronous EJBs
  • Managed Executors
JDBC in Java EE Environments
  • Overview of the JDBC API
  • Using CDI to inject a JDBC resource in a Java EE component
  • The Data Access Object pattern
Transactions in Java EE Environments
  • What are transaction semantics?
  • Comparing programmatic and declarative transaction scoping
  • Using JTA to scope transactions programmatically
  • Implementing a container-managed transaction policy using declarations
  • Controlling container-managed transaction propagation
Java Persistence API
  • Object-relational mapping
  • Entities and the entity manager
  • Persistence contexts and persistence units
  • Create, read, update and delete operations with JPA
  • Create typed queries in JPA with JPQL
Bean Validation with JPA
  • What is Bean Validation?
  • JPA lifecycle phases where validation takes place
  • Using the built-in validation constraints
  • Creating a custom bean validation constraint
  • Programmatic validation by injecting a Validator
  • Using validation groups
Timer and Batch Services
  • What are timer services?
  • Programmatic and automatic timers
  • What is Batch processing?
  • Jobs, steps and chunks
  • Batch examples
Security
  • Authentication, authorization and confidentiality
  • Apply Java EE security using deployment descriptors
  • Creating users and groups and mapping them to roles
  • Defining possible web service attack vectors