Programming REST Web Services with JAX-RS 2.0 - Wildfly / JBossDeveloper Studio Training

Answers to Popular Questions:

 
Yes, this class can be tailored to meet your specific training needs.
Yes, we provide Java consulting services.
Yes, group discounts are provided.

Course Description

 
This JAX-RS 2.0 training course covers the design principles of REST architecture along with the details of how to implement these services with JAX-RS 2.0. This will allow students who take the course to implement RESTful services using Java standards that will be portable to many different Java environments. --- Although many of the services in active use are SOAP or at least XML-based, an increasing number of services take a RESTful approach to data transmission. Representational state transfer (REST) is a style of software architecture that differs from the more traditional Remote Procedure Call (RPC) style of data transmission, instead emphasizing the importance of defining and retrieving representations of resources. --- This course uses the Wildfly server and Eclipse. Wildfly is the open source project for the JBoss Enterprise Application Platform and was renamed from JBoss Application Server (JBoss AS) for this version. Wildfly 8 supports Java EE 7 and JAX-RS 2.0, the version covered in this course.
Course Length: 2 Days
Course Tuition: $990 (US)

Prerequisites

Experience with Java programming is required. Experience with Eclipse is useful but not required. An understanding of basic web architecture and the HTTP protocol. Prior experience with RPC-style services such as Web services, Java RMI, COM objects, etc. is helpful, but not required.

Course Outline

 
Chapter 1. REST Services
- Many Flavors of Services
- Understanding REST
- Principles of RESTful Services
- REST Resource Examples
- SOAP Equivalent Examples
- REST vs SOAP Communication
- More REST vs SOAP
- REST vs SOAP Summary
- Famous RESTful Services
- Additional Resources
Summary
 
Chapter 2. Introduction to JAX-RS
- The JAX-RS Specification
- New In JAX-RS 2.0
- The Resource Class
- Configuring JAX-RS for Deployment
- Implementing Service Versioning with Configuration
- A Bunch of Annotations
- @Path
- Using Path Parameters
- Path Parameters
- HTTP Method Binding
- More Complex Paths
Summary
 
Chapter 3. Other JAX-RS Data Injection
- Sources for Injected Data
- Query Parameters
- HTML Form Input
- Cookies
- Matrix Parameters
- HTTP Headers
- Default Values
- Parameter Conversion
- Parameter Encoding
- Custom Types
- Bean Validation
Summary
 
Chapter 4. Designing a RESTful Service
- Introduction
- The Design Methodology
- Ingredients of a Service Operation Interface
- What Constitutes a REST Resource
- Resource Identifiers
- MIME Types
- HTTP Methods
- Example Operation Interface Document
- Web Application Description Language (WADL)
- WADL Support
Summary
 
Chapter 5. JAX-RS Content Types
- Internet Media Types
- Common Media Types
- Use of Media Type in REST
- The @Consumes Annotation
- Content Negotiation
- The @Produces Annotation
- The MediaType Class
- JAXB
- Dynamic Content Negotiation
Summary
 
Chapter 6. Building Complex JAX-RS Responses
- HTTP Response Status Codes
- Introduction to the JAX-RS Response Class
- Using the Response and Response.ResponseBuilder Classes
- Building a Location for an Entity
- Returning Cookies
- Cookies in Response Headers
- Reading Cookies
- Returning an Exception
- ExceptionMappers
Summary
 
Chapter 7. Clients of JAX-RS Services
- Java Web Service Clients
- JAX-RS 2.0 Client Libraries
- JAX-RS 2.0 Client Example
- Client Instances
- WebTarget
- Building and Invoking Requests
- WADL
- WADL Example
- JAX-RS Implementation Client Libraries
- RESTEasy Example
Summary
 
Chapter 8. Securing JAX-RS Services
- HTTP Basic Authentication
- Example Client
- The WWW-Authenticate and Authorization Headers
- Java EE Security Roles
- Integration with Web Container Security
- Java EE Security Annotations
- SecurityContext
- Restrictions Based on Content Type
Summary
 
Chapter 9. Hypermedia and REST Services (HATEOAS)
- HATEOAS
- Using Hypermedia
- Building Links and Targets
- Using Atom Links for State Transitions
Summary
 
Chapter 10. Caching and Asynchronous Interaction
- Caching and REST Services
- Approaches to Caching
- HTTP Cache Headers
- Example: Conditional HTTP GET
- Conditional Updates
- Asynchronous Interaction
- Futures and Callbacks
- Server Asynchronous Response Processing
Summary

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Java Uses & Stats

Java is Used For:
Android & IOS Development Software Products Video Games Desktop GUI's
Difficulty
Popularity
Year Created
1995
Pros

Most Commonly Used: 
According to Oracle, three billion devices run on Java.  And, because of its real-world applications, it consistently ranks at the top of the TIOBE Programming Community Index. 

Great Career Choice: 
Some of the fastest-growing salaries in the U.S. in 2018 are for Java developers.  (Glassdoor)  

Android Apps Development:
Developers predominatly use their Java skills in building apps for Google's Android. The Android platform is the number one mobile paltform in the world

It Can Run On Any Platform:
Java can compile on Windows and run the same compiled file on Linux, Windows and Mac.

Great Supporting IDE's:
Over the years, coding in Java has become simpler with the introduction of open source development tools, i.e. Eclipse and NetBeans that use Java capabilities for debugging.  
 

Cons

Uses a Lot of Memory:
Performance can be significantly slower with Java and more memory-consuming than natively compiled languages such as C or C++.

Difficulty in Learning: 
Learning Java can be a bit challenging if you are a beginner.  However, once you get the hang of Object Oriented Programming and a decent grasp of the syntax, you will be well on your way.

Slow Start Up Times:
There is quite a bit of one-time initialization done by JDK classes before compiling as well as loading classes and verification (making sure code doesn't do evil things, all of which takes longer that some other languages such as C. 

Verbose and Complex Code:
Long, over-complicated sentences make code less readable and scannable. Compare to let's say Python, we can see how clear Python code appears: It doesn’t require semicolons; uses “and,” “or,” and “not” as operators instead of Java’s “&&,” “||,” and “!”; and generally has fewer bells and whistles such as parentheses or curly braces.

Commercial License Cost:
Companies have to prepare for the changes that Oracle will institute in 2019 . Today, the current version of Java is free and available for redistribution for general purpose computing. However, If you are a DEVELOPER, Oracle recommends you review the roadmap information for Java SE 8 and beyond and take appropriate action depending on the type of application you develop and your distribution mode.

Java Job Market
Average Salary
$102,000
Job Count
26,856
Top Job Locations

New York City 
San Jose
Washington D.C, 

Complimentary Skills to have along with Java

- If you are an experienced Java developer, learning a complimentary language to Java should come much more naturally.  As an example JetBrains recently created the Kotlin programming language which is officially supported by Google for mobile development.  Kotlin compiles to Java bytecode and runs on the JVM; it's purported to address many of Java's shortcomings...

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.