JB161 JBoss and EJB3 for Java Developers

This course provides an introduction to JBoss, Java EE and
EJB3, and is ideal for students with existing Java programming
experience wishing to enter Java Enterprise Edition (Java EE)
development.

Course Description

JBoss and EJB3 for Java Developers is targeted toward
Java developers who wish to extend their knowledge to EJB3 and
Java EE middleware programming using the JBoss Application Server.
This class is an introduction to Java EE web-tier and EJB3 development
using the JBoss Application Server. It provides a hands-on approach
to Java Servlet, JSP, JSF and EJB3 development, deployment and the tools
necessary to facilitate both processes.

What you will learn:

Course content

  1. Servlets

    This module provides the background and motivation that
    led to the creation of the Java Servlet specification as
    well as an overview of the servlet architecture. It covers
    basic HTTP request and parameter handling, HTTP Sessions,
    filters and web application lifecycle events. It also
    covers the Web Archive (WAR) packaging, how to use JBoss
    specific deployment descriptors for servlet configuration,
    and how to configure Tomcat connectors.

    Here we describe the servlet container (in this case
    Apache Tomcat). It includes a description of how and why
    it provides the services it does as well as how to
    configure your web application to properly take advantage
    of its services.

    To properly make use of Servlet technology, an
    understanding of the HyperText Transfer Protocol is
    required. One must know the difference between GET and
    POST and be able to indicate MIME types properly to
    effectively receive input from web forms and provide
    content in response. Additionally, we will discuss how
    Cookies allow websites to maintain a relationship with its
    users by remembering them.

  2. HTTP Session

    Here students will learn what the powerful HTTP Session
    can be used for and how it can save time for your users by
    increasing the performance of your application.

    This module extends your understanding of the Servlet by
    detailing it´s lifecycle and further showing how one might
    tap into this by listening for lifecycle events and covers
    how to implement a servlet filter to process incoming and
    outgoing data.

  3. JSPs

    Here we go into depth on the power of JSPs. We will
    discusse Expression Language (or EL) which enables
    developers to make calls into their JavaBeans directly
    from their web pages and output the results in a very
    readable fashion.

    We will also look at Tag Libraries and why one might use
    them? This module demonstrates some of the functions
    available in the Java Standard Tab Library (JSTL) and how
    to use them. We will write our own custom tags such that
    you will be able to extend the JSP programming model to
    meet your needs.

  4. Web Security

    Building your web presence is important, but it can be
    dangerous as well. In this module we will visit some of
    the security pitfalls and show you how to avoid them in
    your own deployment. This includes discussion of locking
    down your system and protecting it with passwords as well
    as implementing HTTPS using your own security certificate.

  5. Building Applications Using JSF

    This module will discuss the use of Java Server Faces
    (JSF). How and why would a developer use such a framework?
    What advantages does it offer in designing and building a
    clean, modular application? How will JSF technology help
    you reach broader, worldwide audiences? How does JSF yield
    more maintainable code and how can you extend its
    functionality to meet the needs of your business? These
    questions and more comprise are addressed here.

  6. The Java Persistence API (JPA)

    This module introduces the Java Persistence API (JPA), its
    value and how developers can take advantage of this leap
    forward in object-relational mapping (ORM). We will see
    why this technology is so exciting to the industry and
    what it can offer you. We will learn about how to properly
    map objects, what options are available for complex
    relationships (including inheritance - a strength of
    object-oriented programming) and will gain insight into
    how to make these decisions.

    Entity lifecycle, query language, proper packaging and
    optimizations such as lazy fetch will also be discussed
    here. Additionally, developers will see how annotations,
    the modern and powerful Java language feature, helps to
    make developers more efficient as they do the same for
    their applications. However, XML overrides will not be
    ignored as they retain significant value even in this
    annotated world.

  7. Enterprise JavaBeans (EJB3)

    This module provides a basic introduction to Enterprise
    Java Beans. It explains the case for server-side
    components and the different types of Beans available:
    session, entity and message-driven beans. It presents how
    to author each of these in an EJB3 world. The student
    will learn how to specify a local and/ or remote POJI
    (plain old Java interface) for the simple POJO-based
    component.

    It will introduce stateless session beans and stateful
    session beans, the relevant Java annotations to create
    EJB3 components, EJB3 packaging and deployment.

  8. Web Services with EJB3

    This section will provide an overview of the architecture
    and implementation of Java EE web services. The student
    will learn how to expose EJB3 and Servlet components to enable
    remote XML RPC invocations to these components. The
    student will learn the basic approach of integrating the
    JBoss application server with legacy enterprise middleware
    and .NET.

Prerequisites:

Basic Java programming skills and knowledge of OOAD concepts are
required. The student must have practical knowledge of, and/or
experience with, the following:

  • The object-oriented concepts of inheritance, polymorphism
    and encapsulation
  • Java syntax, specifically for data types, variables,
    operators, statements and flow control
  • Writing Java classes as well as using Java interfaces and
    abstract classes
  • Using Java collections Handling Java exceptions
  • Using the JDK and creating the necessary environment for compilation
    and execution of a Java executable from the command line.

Prepares for:

Hardware Requirements

Computer with the following configuration:

  1. A minimum of 1GHz CPU with 1 GB of RAM. A 2 GHz CPU with 2 GB RAM is recommended for IDE users
  2. Operating systems:  Linux or Windows XP. Windows 95/98/2000 is not supported. Windows Vista could work but not supported yet.
  3. 40 GB hard disk space (for product and lab installs)
  4. CD/DVD player
  5. Video card capable of 1024x768 resolution or better
  6. Optional: Your favorite IDE (Integrated Development Environment) loaded. The instructor will support a command prompt (shell) environment. If an IDE is used, student is responsible for its proper configuration for the labs.
  7. The JDK 1.4.2_0x or JDK 1.5
  8. Additional JEMS components, if required, will be provided by the instructor.