JavaEE Bootcamp Training Course

Course Summary

Our Java EE Bootcamp training is a must-have for anyone who wants to learn how to develop enterprise Java applications. It is delivered on a JBoss™Application Server, but is relevent to any major Java EE platform.

By the end of this example-packed, lab-driven course, you will become proficient in Java EE specifications, APIs, semantics, development, as well as JBoss AS deployments, architecture, administration, tuning, security, high-availability + scalability, and best practices. 

This course is based on Java EE 6 and JBoss 7.

 

Duration [top]

5 days.

Objectives [top]

Upon completion of this course, you will be able to create a complete distributed Java EE application. You will also be able to deploy it using JBoss Application Server.

Audience [top]

Java developers with couple of years of experience who are or will be involved in enterprise application development.

Prerequisites [top]

Before taking this course, students should have an advanced knowledge of Java programming.

Instructors [top]

Photo

Doug Bateman is the Director of Training at NewCircle, where he oversees the quality and direction of NewCircle’s training offerings.

Doug has delivered over 100 corporate trainings on technologies including Java, Spring, Hibernate, Python, and Android and draws from over 15 years of experience as a professional software architect.

Previously Doug was the director of professional services for The Middleware Company, responsible for training, consulting, and new course development. Some of his notable projects and customers include Cisco, Hotwire.com, HSBC Bank, NASA, and the Florida State water management system.

In his spare time, Doug enjoys sailing and snowboarding.

More about Doug Bateman...
Photo

Gordon Force leads NewCircle as CEO, and brings 25 years of experience as a developer, architect, director and instructor.

Gordon has taught over 50 training courses on technologies like Java, JBoss, JavaEE, Apache, and Spring and Hibernate.

Previously, Gordon led development and application support for ConnectPay and Encompass products at First Data Corporation. He is also a Certified Scrum Master, and holds a B.A. in Business Administration with Area of Concentration in Quantitative Economics.

More about Gordon Force...

Outline [top]

Java EE

  • Overview of Java EE
  • Benefits of Java EE

JBoss

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

Installation

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

Directory Structure

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

Starting/Stopping

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

Deployment

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

JBoss-IDE

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

Web Tier

  • Overview of web technologies (CGI, Cold Fusion, PHP, APS, Servet/JSP)
  • CGI vs. Servlets/JSPs
  • Advantages of Servlets
  • Java EE 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

JNDI

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

JavaMail

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

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

Class Loading

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

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

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)

EJB

  • Overview of Enterprise JavaBean technology
  • EJB Container
  • Benefits of EJB
  • Types of EJBs (session, entity, message-driven)
  • Entity bean (JPA: 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

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

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

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

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)

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

Additional Notes [top]

This course is typically delivered in five days but we can customize the curriculum to fit your specific training requirements.


Student Testimonials [top]

This was a great course and an excellent primer. The instructors did a great job tayloring the course to our company's specific needs. The content was excellent as well.

Lindsey - Cisco

Doug as an instructor was very approachable and helpful. We walked into the class with no idea about any of the concepts, now we are familiar everything that was promised even though we didn't have enough time to go in to the details of everything. This is definitely a great starting point for us to build on. Thanks Doug!!

Divya - Cisco

Well organized training and well prepared training materials and labs. The tutor is very knowledgeable. Learned a lot. Great training, very impressive.

Garry - Newegg Inc.

Very good course to let me get more familiar with JEE and JBoss. The instructors did a great job explaining the concepts and were always available for various questions.

Weidung - Cisco

The instructor was well organized and easy to understand. There was a wide range of topics that were well explained. We were able to spend more time on topics that were important to us. The instructor made sure that no one fell behind by using the breaks to help anyone out with any problems. Having the videos and all materials accessible via web was also a plus.
Really appreciate the teachers staying after class to help me with problems I was having with my lab exercise.

Debbie - Cisco

The bootcamp was excellent. I learned more in the past week about JBoss and JavaEE than I've learned in the past two years of my career. This has been the best training session that I have ever taken! Our instructor did an excellent job at explaining the topics involved.

Alexander - Penn State

The instructor is very helpful for us to come up to speed on the topics chosen for the training. He did a very good job on keeping people engaged and responding to the many questions people have. Overall a well-delivered training experience.

Weijen - Cisco

Gordon is an excellent teacher, very professional, clear explanations and helpful in answering questions.
I learned a lot about Java EE 7, and JBoss, and JPA, ext. from this training. Doug is a very nice guy and has a lot of jokes.

Hogan - Newegg Inc.

Michael was a very proficient and knowledgeable instructor. He really took the time to focus on and answer the the questions that were important to our group.

Pete - MITRE Corporation

Doug and Neven demonstrated in depth knowledge and understanding of JEE and the tools to build software in this space. I do appreciate them staying late every day to take our questions and their willingness share their experiences working in this environment.

Nelson - Cisco

Great course.

Bayardo - Cisco

Fast pace, engaging, examples are wonderful.

Benjamin - Penn State

Since its a 5 day course, its very easy to loose focus, I will admit I did loose focus :) But the instructor was spot on. I am amazed at the amount of stuff he knows. I mean he went on on and on about things in the course and also about things that we asked which were not a part of the course. Completely willing to help.

Pranav - Cisco

really good course.

Jim - Newegg Inc.

Neven and Doug are great instructors: knowledgeable, helpful, and patient. They catered the class to our needs and went the extra mile by staying after class to to discuss web technology that could benefit our product development.

Khiem - Cisco