Course JAV105
JavaEE Application Develoment on JBoss
JavaEE Application Develoment on JBoss
Duration: 5 Days
Course Synopsis
This course focuses on the development of enterprise Java applications using the JBoss application server platform.
Course Objectives
By the end of the course student should know and understand
- Java EE specifications, APIs, semantics, and development procedures
- The principles of JBoss AS deployment, architecture, administration, tuning, security, high-availability and scalability,
The course is aimed at
- Java application developers and programmers
Prerequisites
- Students are expected to have a good knowledge of Java programming gained by 2 to 3 years of practical programming experience.
Publicly scheduled dates, locations, and prices
A schedule of dates for this subject is not currently available. Please call Ajay Patel on 02086471939 to enquire about places and availability.
Course Outline
Overview of JBoss
- Overview of JBoss Organization
- Overview of JBoss Application Server
- JBoss AS Architecture
- JBoss AS Requirements
JBoss Installation and Directory Structure
- Obtaining installing, and configuring Java ,JBoss and Eclipse
- Building JBoss from source
- Installing JBoss
- JBoss directory Structure - files, scripts and utilities
- Understanding JBoss AS configuration ("server") sets
- Installing and configuring the JBoss IDE plug-ins for Eclipse
- JBoss AS logging
Starting/Stopping JBoss
- Using the run script
- Verifying server startup
- Stopping (shutting down), including remote stopping
- Remote starting (netboot)
JBoss Application Deployment
- JavaEE development-deployment life-cycle
- JavaEE deployment descriptors
- Deployment on JBoss AS
- Deployers on JBoss AS, Deployers and Deployment Dependencies
- Hot vs. Cold Deployment
Web Tier Technologies
- Overview of web technologies (CGI, Cold Fusion, PHP, APS, Servet/JSP)
- CGI vs. Servlets/JSPs
- Advantages of Servlets
- JavaEE Web Applications
- Java Servlets
- Life-cycle
- API
- Processing requests and generating responses
- Defining and mapping in WEB-INF/web.xml
- Web Application structure
- Developing and deploying web applications
- XDoclet automation
- Scoped storage: request, session, application
- Initializing applications
- Welcome files, Error documents and Servlet Filters
- JavaServer Pages
- Life-cycle
- JSP API
- 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
- Tomcat architecture and its place in JBoss
- Configuration (jboss-service.xml and server.xml)
- Tomcat's web.xml
- Serving static content
- Virtual hosting
- Logging web access
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
- Java Management Extensions Architecture - An overview
- JMX MBeans
- JMX Console
- Developing MBeans using the JBoss IDE and XDoclet
- Packaging service archive (SAR) files
- Web Console and JBoss Monitoring
Class Loading
- Class Loading on JBoss
- Default and scoped Class Search Order
- Log4j and troubleshooting Class Loading problems
Database Integration
- Managed Database Connection Pools
- Referencing database connection pool resources
- Installing JDBC drivers
- Defining database resources in JBoss AS
- Resource Mapping
JMS
- Java Messaging Service - Architecture Overview
- JMS Messaging Domains (Point-to-Point, Publish and Subscribe)
- JMS Message Consumption
- JMS API
- Developing with JMS
- JMS on JBoss AS
EJB
- Enterprise JavaBean technology - Essential Concepts
- EJB Container
- 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 EJB clients (local, remote)
- Packaging with enterprise Archive (EAR) files
- Testing
- Developing message-driven beans via the JBoss IDE
- 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
- 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 and database login modules
- FORM-based login
- Configuring JBoss AS for SSL
- Generating SSL certificates
- Requiring SSL in web applications
- Securing JBoss AS
- Running with reduced privileges
- File-system security
- Running with Java Security Manager
- Running behind a firewall
Performance Tuning
- JVM tuning
- RMI tuning
- Tomcat tuning
- Tuning JBoss services / Removing unnecessary services
Clustering
- Survey of web system architectures and issues of fault-tolerance / high-availability / scalability
- 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.)
- Deplying cluster farms
