Index - RESTful Java with JAX-RS 2.0 (2013)

RESTful Java with JAX-RS 2.0 (2013)

Index

A NOTE ON THE DIGITAL INDEX

A link in an index entry is displayed as the section title in which that entry appears. Because some sections have multiple index markers, it is not unusual for an entry to have several links to the same section. Clicking on any link will take you directly to the place in the text in which the marker appears.

Symbols

200 and 204 response codes, Successful Responses

404-406 response codes, Error Responses

@ApplicationPath annotation, Deploying Our Service, Deployment Within a JAX-RS-Aware Container

@BeanParam annotation, @BeanParam

@Consumes annotation, Creating customers, MessageBodyReader

@Context annotation, The Basics, Programmatic URI Information, Programmatic Query Parameter Information, Raw Headers-@CookieParam, Life Cycle and Environment, Viewing Accept headers, Relative URIs with UriInfo, Basic Configuration

injecting instances of UriInfo, Programmatic Query Parameter Information, Relative URIs with UriInfo

injecting reference to HttpHeaders, Viewing Accept headers

obtaining instance of UriInfo interface, Programmatic URI Information

ServletContext and ServletConfig interfaces, Basic Configuration

using to get instance of HttpHeaders, Raw Headers-@CookieParam

@CookieParam annotation, The Basics, @CookieParam, Example ex05_2: Forms and Cookies

@DefaultValue annotation, @DefaultValue, The Client Code

@DenyAll annotation, Authorization Annotations

@Encoded annotation, @Encoded

@FormParam annotation, The Basics, @FormParam, Example ex05_2: Forms and Cookies

@GET annotation, Retrieving customers, Binding HTTP Methods

@HeaderParam annotation, The Basics, @HeaderParam, Example ex05_2: Forms and Cookies

@HttpMethod annotation, Binding HTTP Methods, Examples for Chapter 4

@MatrixParam annotation, The Basics, @MatrixParam, The Server Code

@MaxAge annotation, DynamicFeature

@NameBinding annotation, Name Bindings, DynamicFeature Versus @NameBinding

DynamicFeature versus, DynamicFeature Versus @NameBinding

@Path annotation, CustomerResource: Our JAX-RS Service, HTTP Method and URI Matching, @Path, Binding URIs, @Path Expressions, Template parameters, Regular expressions, Precedence rules, Encoding, Matrix Parameters, Subresource Locators, Full Dynamic Dispatching, Gotchas in Request Matching, Building URIs with UriBuilder, Example ex04_2: @Path with Expressions-The Client Code

binding URIs, Binding URIs

creating URI from, Building URIs with UriBuilder

expressions, @Path Expressions, Template parameters, Regular expressions, Precedence rules, Encoding, Matrix Parameters, Subresource Locators, Full Dynamic Dispatching, Gotchas in Request Matching, Example ex04_2: @Path with Expressions-The Client Code

character encoding, Encoding

full dynamic dispatching, Full Dynamic Dispatching

gotchas in request matching, Gotchas in Request Matching

matrix parameters, Matrix Parameters

precedence rules for matching, Precedence rules

regular expressions, Regular expressions

subresource locators, Subresource Locators

template parameters, Template parameters

workbook examples, Example ex04_2: @Path with Expressions-The Client Code

@PathParam annotation, Updating a customer, The Basics, @PathParam-Programmatic URI Information, More Than One Path Parameter, Scope of Path Parameters, PathSegment and Matrix Parameters, Matching with multiple PathSegments, Programmatic URI Information, Negotiation by URI Patterns, The Server Code

content information in, Negotiation by URI Patterns

more than one path parameter, More Than One Path Parameter

PathSegment and matrix parameters, PathSegment and Matrix Parameters, Matching with multiple PathSegments

matching with multiple PathSegments, Matching with multiple PathSegments

programmatic URI information, Programmatic URI Information

scope of path parameters, Scope of Path Parameters

workbook example, The Server Code

@PermitAll annotation, Authorization Annotations

@POST annotation, Creating customers

@Pretty annotation, Adding pretty printing

@Priority annotation, Ordering Filters and Interceptors, Ordering Filters and Interceptors

advantages of using, Ordering Filters and Interceptors

@Produces annotation, Retrieving customers, byte[], MessageBodyWriter, Method Dispatching

matching to Accept headers, Method Dispatching

MessageBodyWriter implementation, MessageBodyWriter

setting media for Content-Type header, byte[]

@Provider annotation, MessageBodyWriter, Exception Mapping

ExceptionMapper implementations, Exception Mapping

MessageBodyWriter implementation, MessageBodyWriter

@PUT annotation, Updating a customer

@QueryParam annotation, The Basics, @QueryParam, Programmatic Query Parameter Information, Collections

collections as query parameters, Collections

programmatic query parameters information, Programmatic Query Parameter Information

@RolesAllowed annotation, Authorization Annotations

@RunAs annotation, Authorization Annotations

@Suspended annotation, AsyncResponse API

@TokenAuthenticated custom annotation, Name Bindings

@XmlAccessorType annotation, Intro to JAXB

@XmlAttribute annotation, Intro to JAXB

@XMLElement annotation, Intro to JAXB

@XmlRootElement annotation, Intro to JAXB, JAXB JAX-RS Handlers

@XmlType annotation, JAXB JAX-RS Handlers

A

abstract classes, Inheritance

Accept headers, Conneg Explained, Method Dispatching, Viewing Accept headers, Variant processing

clients requesting media type, Conneg Explained

for incoming requests, matching to Variant list, Variant processing

matching to @Produces annotation, Method Dispatching

viewing, Viewing Accept headers

addressability, RESTful Architectural Principles, Model the URIs

modeling URIs for RESTful service, Model the URIs

addressable resources, Introduction to REST

Annotation object, MessageBodyWriter

annotations, Your First JAX-RS Service, JAX-RS and Java Interfaces, JAX-RS and Java Interfaces, Binding HTTP Methods, Binding HTTP Methods, The Basics, Authorization Annotations

authorization, Authorization Annotations

in JAX-RS, Your First JAX-RS Service, Binding HTTP Methods

binding HTTP methods, Binding HTTP Methods

JAX-RS annotations applied to interface methods, JAX-RS and Java Interfaces

JAX-RS injection, The Basics

meta-annotations, Binding HTTP Methods

separating from business logic by using interfaces, JAX-RS and Java Interfaces

Apache HttpClient, Apache HttpClient (see HttpClient library)

Apache Tomcat, Deployment, Deployment Within a JAX-RS-Aware Container

Application class, Deploying Our Service, Ordering Filters and Interceptors, The Application Class, The Application Class, Deployment Within a JAX-RS-Aware Container, Deployment Within a JAX-RS-Aware Container, Basic Configuration, EJB Integration, Spring Integration

annotation with @ApplicationPath, Deployment Within a JAX-RS-Aware Container

example, The Application Class

fully qualified name, Deployment Within a JAX-RS-Aware Container

injecting instance of Configurable into constructor, Ordering Filters and Interceptors

injecting ServletContext into, Basic Configuration

JAX-RS EJBs, EJB Integration

Spring integration, Spring Integration

writing class that extends, Deploying Our Service

application state, engine of, The engine of application state (see HATEOAS)

architectural principles of REST, Introduction to REST (see REST)

asynchronous JAX-RS, Asynchronous JAX-RS-Wrapping Up, AsyncInvoker Client API-Futures Versus Callbacks, Using Futures-Exception handling, Using Callbacks-Using Callbacks, Server Asynchronous Response Processing-Priority scheduling, AsyncResponse API-Priority scheduling, Examples for Chapter 13-Build and Run the Example Program

AsyncInvoker client API, AsyncInvoker Client API-Futures Versus Callbacks, Using Futures-Exception handling, Using Callbacks-Using Callbacks

using callbacks, Using Callbacks-Using Callbacks

using futures, Using Futures-Exception handling

server asynchronous response processing, Server Asynchronous Response Processing-Priority scheduling, AsyncResponse API-Priority scheduling

AsyncResponse API, AsyncResponse API-Priority scheduling

workbook examples, Examples for Chapter 13-Build and Run the Example Program

AsyncResponse API, AsyncResponse API-Priority scheduling, Exception Handling, Cancel, Status Methods, Timeouts, Callbacks, Use Cases for AsyncResponse, Server-side push, Publish and subscribe, Priority scheduling

callbacks, Callbacks

cancel method, Cancel

exception handling, Exception Handling

status methods, Status Methods

timeouts, Timeouts

use cases for, Use Cases for AsyncResponse, Server-side push, Publish and subscribe, Priority scheduling

priority scheduling, Priority scheduling

publish and subscribe, Publish and subscribe

server-side push, Server-side push

Atom, Common link element, HATEOAS and Web Services, Atom Links, Decoupling interaction details, Link Headers Versus Atom Links, Example ex10_1: Atom Links-Build and Run the Example Program

links, Atom Links, Decoupling interaction details, Link Headers Versus Atom Links, Example ex10_1: Atom Links-Build and Run the Example Program

embedding in returned document, Decoupling interaction details

Link headers versus, Link Headers Versus Atom Links

authentication, Server Request Filters, Securing JAX-RS, Authentication-Client Certificate Authentication, Basic Authentication, Digest Authentication, Client Certificate Authentication, Authentication and Authorization in JAX-RS, Enforcing Encryption, Programmatic Security, OAuth 2.0, Authentication, Advantages and Disadvantages, Authentication, One-Time Password Authentication-Build and Run the Example Program

0Auth 2.0 protocol, OAuth 2.0

Basic Authentication, Basic Authentication

Client Certificate Authentication, Client Certificate Authentication

custom protocols, implementing with request filters, Server Request Filters

defined, Securing JAX-RS

Digest Authentication, Digest Authentication

disadvantages of using java.net package, Advantages and Disadvantages

enabling in JAX-RS, Authentication and Authorization in JAX-RS

enforcing encryption, Enforcing Encryption

getting mechanism from Principal object, Programmatic Security

HttpClient library, Authentication

HttpURLConnection class, Authentication

one time password (OTP), One-Time Password Authentication-Build and Run the Example Program

Authenticator API, Authentication

authorization, Securing JAX-RS, Authorization, Authentication and Authorization in JAX-RS, Authorization Annotations

annotations, Authorization Annotations

defined, Securing JAX-RS

enabling in JAX-RS, Authentication and Authorization in JAX-RS

Authorization headers, Server Request Filters, Basic Authentication, Digest Authentication

in Digest Authentication, Digest Authentication

B

BadgerFish, XML to JSON mapping, XML to JSON using BadgerFish

BadRequestException, Exception Hierarchy

Basic Authentication, Basic Authentication, Client Security

enabling, Client Security

browser caching, Caching

byte[], byte[]

C

Cache-Control headers, Cache-Control, Server Response Filters

CacheControl class, Cache-Control

CacheControlFilter class, DynamicFeature, DynamicFeature Versus @NameBinding

caching, Caching-JAX-RS and conditional GETs, Expires Header, Cache-Control, Revalidation and Conditional GETs-JAX-RS and conditional GETs, Last-Modified, ETag, Client-Side Filters, Caching, Caching, Example ex11_1: Caching and Concurrent Updates-Build and Run the Example Program

alternative Java clients, Caching

caching, Caching

and concurrent updates, workbook example, Example ex11_1: Caching and Concurrent Updates-Build and Run the Example Program

Cache-Control header, Cache-Control

Expires header, Expires Header

HttpURLConnection class, Caching

implementing client-side cache using filters, Client-Side Filters

revalidation and conditional GETs, Revalidation and Conditional GETs-JAX-RS and conditional GETs, Last-Modified, ETag

ETag header, ETag

Last-Modified header, Last-Modified

callbacks, Using Callbacks-Futures Versus Callbacks, Futures Versus Callbacks, Callbacks

using in AsyncInvoker client API, Using Callbacks-Futures Versus Callbacks, Futures Versus Callbacks

futures versus, Futures Versus Callbacks

using in AsyncResponse API, Callbacks

cancel link, Reduced state transition errors

cancelling orders, States versus operations

CDNs (content delivery networks), Caching

character encoding, @Path URI expressions, Encoding

char[], String, char[]

checked exceptions, Exception Handling

classes, Customer: The Data Class, CustomerResource: Our JAX-RS Service, Binding URIs, Gotchas in Request Matching

annotation designating class as JAX-RS service, CustomerResource: Our JAX-RS Service

JAX-RS root resources, Binding URIs

matching JAX-RS classes in URI request matching, Gotchas in Request Matching

properties of, Customer: The Data Class

Client API (JAX-RS 2.0), Writing a Client, JAX-RS Client API-Wrapping Up, Client Introduction, Bootstrapping with ClientBuilder, Client and WebTarget, Building and Invoking Requests-Exception Handling, Invocation, Exception Handling, Configuration Scopes

basics of, Client Introduction

bootstrapping with ClientBuilder, Bootstrapping with ClientBuilder

building and invoking requests, Building and Invoking Requests-Exception Handling, Invocation, Exception Handling

exception handling, Exception Handling

Invocation objects, Invocation

Client and WebTarget interfaces, Client and WebTarget

configuration scopes, Configuration Scopes

Client Certificate Authentication, Client Certificate Authentication, Client Certificate Authentication, Client Certificate authentication

alternative Java client, Client Certificate Authentication

HttpClient library, Client Certificate authentication

client errors, The Status Enum

Client interface, Bootstrapping with ClientBuilder

client-side filters, Client-Side Filters-Client-Side Filters

ClientBuilder class, Bootstrapping with ClientBuilder, Configuration Scopes, Client Security, Verifying the Server

configuration scope, overriding, Configuration Scopes

obtaining truststore with server certificates, Verifying the Server

specifying KeyStore, Client Security

ClientErrorException, Exception Handling

ClientRequestFilter interface, Client-Side Filters

ClientResponseFilter interface, Client-Side Filters

clients, AsyncInvoker Client API-Futures Versus Callbacks, Exception handling, Client Security, Verifying the Server, Alternative Java Clients-Wrapping Up, java.net.URL, Authentication, Advantages and Disadvantages, Apache HttpClient-Advantages and Disadvantages,RESTEasy Client Proxies-Advantages and Disadvantages

alternative Java clients, Alternative Java Clients-Wrapping Up, java.net.URL, Authentication, Advantages and Disadvantages, Apache HttpClient-Advantages and Disadvantages, RESTEasy Client Proxies-Advantages and Disadvantages

advantages/disadvantages of using java.net package, Advantages and Disadvantages

Apache HttpClient, Apache HttpClient-Advantages and Disadvantages

authentication, Authentication

java.net.URL, java.net.URL

RESTEasy Client Proxies, RESTEasy Client Proxies-Advantages and Disadvantages

AsyncInvoker client API, AsyncInvoker Client API-Futures Versus Callbacks

cleaning up client connections, Exception handling

security, Client Security, Verifying the Server

verifying the server, Verifying the Server

collections, injecting as query parameters, Collections

communicate statelessly, Communicate Statelessly (see stateless communications)

CompletionCallback interface, Callbacks

compression, adding to input/output streams through encoding, Reader and Writer Interceptors

concurrency, Concurrency-JAX-RS and Conditional Updates

ConcurrentHashMap class, CustomerResource: Our JAX-RS Service

conditional GET requests, Last-Modified, JAX-RS and conditional GETs, The Server Code

JAX-RS help with, JAX-RS and conditional GETs

conditional PUTs, The Server Code

conditional PUTs or POSTs, Concurrency

Configurable interface, Client and WebTarget, Configuration Scopes, Deploying Filters and Interceptors, Ordering Filters and Interceptors, Ordering Filters and Interceptors

priority for filters and interceptors, Ordering Filters and Interceptors, Ordering Filters and Interceptors

register() method, Deploying Filters and Interceptors

configuration, Configuration-Basic Configuration

configuration scopes, Client API interfaces, Configuration Scopes

ConnectionCallback interface, Callbacks

conneg, JAX-RS and Conneg (see content negotiation)

ContainerRequestFilter interface, Server Request Filters, Server Request Filters, Exception Processing, Client Security

prematching and postmatching, Server Request Filters

ContainerResponseFilter interface, Server Response Filters, Exception Processing

content delivery networks (CDNs), Caching

content handlers, JAX-RS Content Handlers-Wrapping Up, Built-in Content Marshalling, javax.ws.rs.core.StreamingOutput, java.io.InputStream, java.io.Reader, java.io.File, byte[], String, char[], MultivaluedMap<String, String> and Form Input,javax.xml.transform.Source, JAXB, JAXB JAX-RS Handlers, JAXB and JSON, JSON and JSON Schema, Custom Marshalling-Pluggable JAXBContexts using ContextResolvers, MessageBodyWriter, MessageBodyReader, Life Cycle and Environment, Examples for Chapter 6-Build and Run the Example Program

built-in content marshalling, Built-in Content Marshalling, javax.ws.rs.core.StreamingOutput, java.io.InputStream, java.io.Reader, java.io.File

File class, java.io.File

InputStream and Reader classes, java.io.InputStream, java.io.Reader

StreamingOutput interface, javax.ws.rs.core.StreamingOutput

byte[], byte[]

custom marshalling, Custom Marshalling-Pluggable JAXBContexts using ContextResolvers, MessageBodyWriter, Life Cycle and Environment

life cycle and environment, Life Cycle and Environment

using MessageBodyWriter, MessageBodyWriter

custom unmarshalling, MessageBodyReader

JAXB, JAXB

JAXB and JSON, JAXB and JSON

JAXB JAX-RS handlers, JAXB JAX-RS Handlers

JSON and JSON schema, JSON and JSON Schema

MultivaluedMap<String, String> and form input, MultivaluedMap<String, String> and Form Input

Source interface, javax.xml.transform.Source

String class and char[], String, char[]

workbook examples, Examples for Chapter 6-Build and Run the Example Program

content negotiation, Representation-Oriented, HTTP Content Negotiation-Wrapping Up, Conneg Explained, Preference Ordering, Language Negotiation, Encoding Negotiation, JAX-RS and Conneg-Negotiation by URI Patterns, Complex Negotiation-Variant processing,Negotiation by URI Patterns, Leveraging Content Negotiation, Creating New Media Types, Flexible Schemas, Examples for Chapter 9-Build and Run the Example Program

conneg protocol, Conneg Explained

conneg prototol, Preference Ordering

preference ordering, Preference Ordering

encoding negotiation, Encoding Negotiation

JAX-RS and conneg, JAX-RS and Conneg-Negotiation by URI Patterns, Complex Negotiation-Variant processing, Negotiation by URI Patterns

complex negotiation, Complex Negotiation-Variant processing

negotiation by URI patterns, Negotiation by URI Patterns

language negotiation, Language Negotiation

leveraging, Leveraging Content Negotiation, Creating New Media Types, Flexible Schemas

creating new media types, Creating New Media Types

flexible schemas, Flexible Schemas

workbook examples, Examples for Chapter 9-Build and Run the Example Program

Content-Type headers, Representation-Oriented

ContextResolver interface, Managing your own JAXBContexts with ContextResolvers, Pluggable JAXBContexts using ContextResolvers, Life Cycle and Environment

instances, life cycle and environment, Life Cycle and Environment

managing your own JAXBContexts with, Managing your own JAXBContexts with ContextResolvers

pluggable JAXBContexts with, Pluggable JAXBContexts using ContextResolvers

Cookie class, @CookieParam

cookies, Returning Cookies, Building and Invoking Requests, Example ex05_2: Forms and Cookies

injecting, Example ex05_2: Forms and Cookies

returning, Returning Cookies

setting to return to server, Building and Invoking Requests

COPY method (HTTP), HTTP Method Extensions

create (data format), Create Format

customer database JAX-RS service, Your First JAX-RS Service-Wrapping Up, Customer: The Data Class, CustomerResource: Our JAX-RS Service-Inheritance, Creating customers, Updating a customer, Utility methods, JAX-RS and Java Interfaces, Inheritance,Deploying Our Service-Deploying Our Service, Writing a Client, Examples for Chapter 3-Examining the Source Code

CustomerResource class, CustomerResource: Our JAX-RS Service-Inheritance, Creating customers, Updating a customer, Utility methods, JAX-RS and Java Interfaces, Inheritance

creating customers, Creating customers

making it abstract, Inheritance

making it interface-based, JAX-RS and Java Interfaces

updating customers, Updating a customer

utility methods transforming Customer objects to XML, Utility methods

data class, Customer, Customer: The Data Class

deploying, Deploying Our Service-Deploying Our Service

workbook examples, Examples for Chapter 3-Examining the Source Code

writing a client, Writing a Client

D

data format, Defining the Data Format-Create Format, Read and Update Format-The details, Create Format, Creating New Media Types

defining for RESTful services, Defining the Data Format-Create Format, Read and Update Format-The details, Create Format

create format, Create Format

read and update format, Read and Update Format-The details

evolution of, Creating New Media Types

DefaultHttpClient class, Apache HttpClient

DELETE method (HTTP), The Uniform, Constrained Interface, Removing an Order, Customer, or Product, Overloading the meaning of DELETE

overloading meaning of, Overloading the meaning of DELETE

removing resources with, Removing an Order, Customer, or Product

deployment and integration, Deployment and Integration-Wrapping Up, Deployment-Deployment Within a JAX-RS-Unaware Container, The Application Class, Deployment Within a JAX-RS-Aware Container, Deployment Within a JAX-RS-Unaware Container,Configuration-Basic Configuration, EJB Integration, Spring Integration, Examples for Chapter 14-Build and Run the Example Program

configuration, Configuration-Basic Configuration

deployment, Deployment-Deployment Within a JAX-RS-Unaware Container, The Application Class, Deployment Within a JAX-RS-Aware Container, Deployment Within a JAX-RS-Unaware Container

Application class, The Application Class

within JAX-RS-aware container, Deployment Within a JAX-RS-Aware Container

within JAX-RS-unaware container, Deployment Within a JAX-RS-Unaware Container

EJB integration, EJB Integration

Spring integration, Spring Integration

workbook examples, Examples for Chapter 14-Build and Run the Example Program

designing RESTful services, Designing RESTful Services-Wrapping Up, The Object Model, Model the URIs, Defining the Data Format-Create Format, Read and Update Format-The details, Create Format, Assigning HTTP Methods-States versus operations, Browsing All Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products, Creating with PUT, Creating with POST, Updating an Order, Customer, or Product, Removing an Order, Customer, or Product, States versus operations

assigning HTTP methods, Assigning HTTP Methods-States versus operations, Browsing All Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products, Creating with PUT, Creating with POST, Updating an Order, Customer, or Product,Removing an Order, Customer, or Product, States versus operations

creating with POST, Creating with POST

creating with PUT, Creating with PUT

obtaining all objects with GET, Browsing All Orders, Customers, or Products

obtaining individual objects with GET, Obtaining Individual Orders, Customers, or Products

removing resources with DELETE, Removing an Order, Customer, or Product

states versus operations, States versus operations

updating with PUT, Updating an Order, Customer, or Product

data format, Defining the Data Format-Create Format, Read and Update Format-The details, Create Format

create format, Create Format

read and update format, Read and Update Format-The details

modeling the URIs, Model the URIs

object model, The Object Model

Digest Authentication, Digest Authentication

digital signatures, Digital Signatures, DKIM/DOSETA, JOSE JWS

DKIM/DOSETA protocol, DKIM/DOSETA

JOSE JWS, JOSE JWS

DKIM/DOSETA, DKIM/DOSETA

DynamicFeature interface, Per-JAX-RS Method Bindings, DynamicFeature, DynamicFeature Versus @NameBinding

versus @NameBinding, DynamicFeature Versus @NameBinding

E

EJB (Enterprise Java Beans), Location transparency, Using Futures, EJB Integration, Spring Integration, Example ex14_1: EJB and JAX-RS-Build and Run the Example Program

Executors or @Asynchronous, use in container, Using Futures

integration with JAX-RS, EJB Integration, Example ex14_1: EJB and JAX-RS-Build and Run the Example Program

workbook example, Example ex14_1: EJB and JAX-RS-Build and Run the Example Program

JDNI and, Location transparency

Spring and, Spring Integration

encodings, Encoding, @Encoded, Encoding Negotiation, Variant processing, Reader and Writer Interceptors

@Encoded annotation, @Encoded

adding compression to input/output streams, Reader and Writer Interceptors

character encoding in @Path URI expressions, Encoding

dealing with multiple types, Variant processing

encoding negotiation, Encoding Negotiation

encryption, Securing JAX-RS, Enforcing Encryption, Signing and Encrypting Message Bodies, Encrypting Representations, Example ex15_1: JSON Web Encryption-Build and Run the Example Program

enforcing, Enforcing Encryption

JSON Web Encryption (JWE), Example ex15_1: JSON Web Encryption-Build and Run the Example Program

message bodies, Encrypting Representations

of message bodies, Signing and Encrypting Message Bodies

Enterprise Java Beans, EJB Integration (see EJB)

Entity class, Building and Invoking Requests

EntityNotFoundMapper class, Exception Mapping

EntityTag class, ETag

enum, using with injection annotation, Java object conversion

error responses, Error Responses, The Status Enum

numeric range for codes, The Status Enum

ETag headers, ETag, ETag, Concurrency

strong and weak, ETag

Exception class, Exception Handling

exception handling, Exception Handling-Mapping default exceptions, javax.ws.rs.WebApplicationException, Exception Mapping, Exception Hierarchy, Mapping default exceptions, Exception Handling, Exception handling, Exception Handling

AsyncResponse API, Exception Handling

client requests, Exception Handling

exception hierarchy for HTTP error conditions, Exception Hierarchy

exception mapping, Exception Mapping

futures in AsyncInvoker client API, Exception handling

mapping default exceptions, Mapping default exceptions

WebApplicationException, javax.ws.rs.WebApplicationException

ExceptionMapper object, Exception Mapping, Exception Processing, Examples for Chapter 7-Build and Run the Example Program, The ExceptionMappers

EJB and JAX-RS (workbook example), The ExceptionMappers

writing, workbook example, Examples for Chapter 7-Build and Run the Example Program

exceptions, processing for filters or interceptors, Exception Processing

ExecutionException, Exception handling

Executors class, Server-side push

Expires headers, Expires Header

F

Fielding, Roy, Introduction to REST

File class, java.io.File

file suffixes, mapping to media types and languages, Negotiation by URI Patterns

FileInputStream class, java.io.InputStream, java.io.Reader

filters, Filters and Interceptors, Server-Side Filters, Server Request Filters, Server Response Filters, Reader and Writer Interceptors-Reader and Writer Interceptors, Client-Side Filters-Client-Side Filters, Deploying Filters and Interceptors, Ordering Filters and Interceptors, Per-JAX-RS Method Bindings, Name Bindings, Exception Processing, Programmatic Security, Examples for Chapter 12-Build and Run the Example Program, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

client-side, Client-Side Filters-Client-Side Filters

deploying, Deploying Filters and Interceptors

exception processing for, Exception Processing

implementing SecurityContext interface, Programmatic Security

ordering, Ordering Filters and Interceptors

per JAX-RS method bindings, Per-JAX-RS Method Bindings, Name Bindings

name bindings, Name Bindings

reader and writer interceptors, Reader and Writer Interceptors-Reader and Writer Interceptors, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

workbook example, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

server-side, Server-Side Filters, Server Request Filters, Server Response Filters

server request filters, Server Request Filters

server response filters, Server Response Filters

workbook examples, Examples for Chapter 12-Build and Run the Example Program

ForbiddenException, Exception Hierarchy

forms, MultivaluedMap<String, String> and Form Input, Building and Invoking Requests, HATEOAS, Advantages and Disadvantages, Example ex05_2: Forms and Cookies

Form class, Building and Invoking Requests

injecting form data, Example ex05_2: Forms and Cookies

java.net package and, Advantages and Disadvantages

key feature of the Internet, HATEOAS

MultivaluedMap<String, String> containing form input, MultivaluedMap<String, String> and Form Input

full dynamic dispatching, Full Dynamic Dispatching

Future interface, Using Futures

futures, Using Futures-Using Futures, Exception handling, Exception handling, Futures Versus Callbacks

exception handling, Exception handling

using in AsyncInvoker client API, Using Futures-Using Futures, Exception handling, Futures Versus Callbacks

callbacks versus, Futures Versus Callbacks

exception handling, Exception handling

G

GenericEntity class, javax.ws.rs.core.GenericEntity

GenericType class, Building and Invoking Requests

GET method (HTTP), The Uniform, Constrained Interface, Browsing All Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products, Binding HTTP Methods, Building and Invoking Requests, Revalidation and Conditional GETs-JAX-RS and conditional GETs, The Server Code

conditional GETs, The Server Code

getting list of Orders, Products, or Customers, Browsing All Orders, Customers, or Products

invoking with Invocation.Builder, Building and Invoking Requests

JAX-RS annotation for, Binding HTTP Methods

obtaining individual Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products

revalidation and conditional GETs, Revalidation and Conditional GETs-JAX-RS and conditional GETs

GZIP encoding, Variant processing

GZIPDecoder class, Reader and Writer Interceptors

GZIPEncoder class, Reader and Writer Interceptors

H

HATEOAS (Hypermedia As The Engine Of Application State), Introduction to REST, HATEOAS, The engine of application state, HATEOAS-Wrapping Up, HATEOAS and Web Services, Atom Links, Advantages of Using HATEOAS with Web Services, Location transparency, Decoupling interaction details, Reduced state transition errors, W3C standardized relationships, Link Headers Versus Atom Links, HATEOAS and JAX-RS-Embedding Links in XML, Building URIs with UriBuilder, Relative URIs with UriInfo, Building Links and Link Headers, Embedding Links in XML, Examples for Chapter 10-Build and Run the Example Program

and JAX-RS services, HATEOAS and JAX-RS-Embedding Links in XML, Building URIs with UriBuilder, Relative URIs with UriInfo, Building Links and Link Headers, Embedding Links in XML

building links and Link headers, Building Links and Link Headers

building URIs with UriBuilder, Building URIs with UriBuilder

embedding links in XML, Embedding Links in XML

relative URIs with UriInfo, Relative URIs with UriInfo

and RESTful web services, HATEOAS and Web Services, Atom Links, Advantages of Using HATEOAS with Web Services, Location transparency, Decoupling interaction details, Reduced state transition errors, W3C standardized relationships, Link Headers Versus Atom Links

advantages of using together, Advantages of Using HATEOAS with Web Services

Atom links, Atom Links

decoupling interaction details, Decoupling interaction details

Link headers versus Atom links, Link Headers Versus Atom Links

location transparency, Location transparency

reduced state transition errors, Reduced state transition errors

W3C standardized relationships, W3C standardized relationships

workbook examples, Examples for Chapter 10-Build and Run the Example Program

HEAD method (HTTP), The Uniform, Constrained Interface

HTTP, REST and the Rebirth of HTTP, REST and the Rebirth of HTTP, The Uniform, Constrained Interface, Why Is the Uniform Interface Important?, Why Is the Uniform Interface Important?, Representation-Oriented, Representation-Oriented, Assigning HTTP Methods-States versus operations, Browsing All Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products, Creating with PUT, Creating with POST, Updating an Order, Customer, or Product, Removing an Order, Customer, or Product, States versus operations, HTTP Caching-JAX-RS and conditional GETs, Concurrency

assigning HTTP methods to RESTful service, Assigning HTTP Methods-States versus operations, Browsing All Orders, Customers, or Products, Obtaining Individual Orders, Customers, or Products, Creating with PUT, Creating with POST, Updating an Order, Customer, or Product, Removing an Order, Customer, or Product, States versus operations

browsing all objects in the system, Browsing All Orders, Customers, or Products

creating with POST, Creating with POST

creating with PUT, Creating with PUT

obtaining individual objects from the system, Obtaining Individual Orders, Customers, or Products

removing resources with DELETE, Removing an Order, Customer, or Product

states versus operations, States versus operations

updating resources with PUT, Updating an Order, Customer, or Product

caching, HTTP Caching-JAX-RS and conditional GETs

caching capabilities, Why Is the Uniform Interface Important?

concurrency, Concurrency

content negotiation, Representation-Oriented

interoperability of REST services over, Why Is the Uniform Interface Important?

operational methods, The Uniform, Constrained Interface

representations passed between client and server, Representation-Oriented

response codes, REST and the Rebirth of HTTP

REST and, REST and the Rebirth of HTTP

HTTP Content Negotiation, HTTP Content Negotiation (see content negotiation)

HTTP headers, @HeaderParam, Raw Headers, Complex Responses, Building and Invoking Requests, Example ex05_2: Forms and Cookies

injecting, Example ex05_2: Forms and Cookies

injecting header values with @HeaderParam annotation, @HeaderParam

programmatic acces to view all headers, Raw Headers

setting in custom responses, Complex Responses

setting request headers with Invocation.Builder, Building and Invoking Requests

HTTP methods, Your First JAX-RS Service, Creating customers, Retrieving customers, Updating a customer, Binding HTTP Methods, HTTP Method Extensions, Error Responses, Advantages and Disadvantages, Apache HttpClient, Example ex04_1: HTTP Method Extension-The Client Code

405, Method Not Allowed, response code, Error Responses

allowed by java.net package, Advantages and Disadvantages

binding to Java methods in JAX-RS, Your First JAX-RS Service, Creating customers, Retrieving customers, Updating a customer, Binding HTTP Methods

GET method, Retrieving customers

POST method, Creating customers

PUT method, Updating a customer

extensions, HTTP Method Extensions, Example ex04_1: HTTP Method Extension-The Client Code

PATCH method (workbook example), Example ex04_1: HTTP Method Extension-The Client Code

HttpClient classes for, Apache HttpClient

HTTP operation annotations, Binding HTTP Methods

HttpClient library, Apache HttpClient-Advantages and Disadvantages, Apache HttpClient, Authentication, Client Certificate authentication, Advantages and Disadvantages

advantages/disadvantages of, Advantages and Disadvantages

authentication, Authentication, Client Certificate authentication

Client Certificate Authentication, Client Certificate authentication

posting customer in RESTful database, Apache HttpClient

HttpEntity object, Apache HttpClient

HttpGet class, Apache HttpClient

HttpHeaders interface, Raw Headers, @CookieParam, Viewing Accept headers

preprocessed conneg information in, Viewing Accept headers

using to obtain map of all cookies, @CookieParam

HttpMethodOverride class, Server Request Filters

HttpResponse object, Apache HttpClient

HTTPS, Client Certificate Authentication, Enforcing Encryption, Verifying the Server

enforcing, Enforcing Encryption

two-way authentication, Client Certificate Authentication

verifying the server, Verifying the Server

HttpsURLConnection class, Client Certificate Authentication

HttpURLConnection class, java.net.URL, Caching

caching, Caching

hyperlinks, HATEOAS (see links)

Hypermedia As The Engine Of Application State, Introduction to REST (see HATEOAS)

I

If-Match headers, Concurrency

If-Modified-Since headers, JAX-RS and conditional GETs

If-None-Match headers, ETag

If-Unmodified-Since headers, JAX-RS and conditional GETs, Concurrency

inheritance, Inheritance, Exception Mapping

exceptions, Exception Mapping

in JAX-RS services, Inheritance

injection annotations and APIs, JAX-RS Injection-Wrapping Up, The Basics, @PathParam-Programmatic URI Information, @MatrixParam, @QueryParam, Programmatic Query Parameter Information, @FormParam, @HeaderParam, Raw Headers, @CookieParam,@CookieParam, @BeanParam, Common Functionality, Automatic Java Type Conversion-Conversion failures, @DefaultValue, @Encoded, Examples for Chapter 5-Build and Run the Example Program

@BeanParam annotation, @BeanParam

@CookieParam annotation, @CookieParam

@DefaultValue annotation, @DefaultValue

@Encoded annotation, @Encoded

@FormParam annotation, @FormParam

@HeaderParam annotation, @HeaderParam

@MatrixParam annotation, @MatrixParam

@PathParam annotation, @PathParam-Programmatic URI Information

@QueryParam annotation, @QueryParam, Programmatic Query Parameter Information

programmatic query parameter information, Programmatic Query Parameter Information

common functionality of annotations, Common Functionality, Automatic Java Type Conversion-Conversion failures

automatic Java type conversion, Automatic Java Type Conversion-Conversion failures

Cookie class, @CookieParam

HttpHeaders interface, Raw Headers

list of annotations, The Basics

workbook examples, Examples for Chapter 5-Build and Run the Example Program

InputStream object, Creating customers, Updating a customer, Utility methods, java.io.InputStream, java.io.Reader

parameter to updateCustomer() method, Updating a customer

reading XML text from and creating Customer object, Utility methods

interceptors, Reader and Writer Interceptors-Reader and Writer Interceptors, Deploying Filters and Interceptors, Ordering Filters and Interceptors, Per-JAX-RS Method Bindings, Name Bindings, Exception Processing, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

deploying, Deploying Filters and Interceptors

exception processing for, Exception Processing

implementing, workbook example, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

ordering, Ordering Filters and Interceptors

per JAX-RS method bindings, Per-JAX-RS Method Bindings, Name Bindings

name bindings, Name Bindings

interfaces, JAX-RS and Java interfaces, JAX-RS and Java Interfaces-JAX-RS and Java Interfaces

InternalServerErrorException, Exception Hierarchy

Internet, key features of, HATEOAS

InterruptedException, Exception handling

Invocation.Builder interface, Building and Invoking Requests, Invocation

InvocationCallback interface, Using Callbacks, Server-side push

J

J2EE applications, Addressability

Jackson framework, JSON and JSON Schema

Java, Built-in Content Marshalling-javax.xml.transform.Source, JAXB-Managing your own JAXBContexts with ContextResolvers, JSON and JSON Schema

frameworks for marshaling between Java and JSON, JSON and JSON Schema

mapping Java classes to XML using JAXB, JAXB-Managing your own JAXBContexts with ContextResolvers

marshaling message bodies to/from Java types in JAX-RS, Built-in Content Marshalling-javax.xml.transform.Source

Java beans, Customer: The Data Class

Java EE, Deploying Our Service, Deployment Within a JAX-RS-Aware Container, Securing JAX-RS

defined, Deployment Within a JAX-RS-Aware Container

JAX-RS service deployments, Deploying Our Service

security services and protocols, Securing JAX-RS

Java Persistence (JPA), Customer: The Data Class, Exception Mapping

Entity beans, Customer: The Data Class

EntityNotFoundException, Exception Mapping

java.io.File class, java.io.File

java.io.FileInputStream class, java.io.InputStream, java.io.Reader

java.io.InputStream class, Creating customers, java.io.InputStream, java.io.Reader

java.io.LineNumberReader class, java.io.InputStream, java.io.Reader

java.io.OutputStream class, javax.ws.rs.core.StreamingOutput

java.io.Reader class, java.io.InputStream, java.io.Reader

java.lang.annotation.Annotation object, MessageBodyWriter

java.lang.Exception class, Exception Handling

java.lang.reflect.Type, MessageBodyWriter

java.lang.RuntimeException class, Exception Handling

java.net package, advantages/disadvantages for RESTful client, Advantages and Disadvantages

java.net.Authenticator, Authentication

java.net.HttpURLConnection, java.net.URL

java.net.URL class, Java object conversion, java.net.URL

java.util.concurrent.ConcurrentHashMap class, CustomerResource: Our JAX-RS Service

java.util.concurrent.Executors, Server-side push

java.util.concurrent.Future, Using Futures

java.util.concurrent.TimeoutException, Using Futures

javas.ws.rs.client.ProcessingException, Exception Processing

javax.net.SSLFactory class, Client Certificate Authentication

javax.security.Principal interface, Programmatic Security

javax.ws.rs.Client interface, Bootstrapping with ClientBuilder

javax.ws.rs.core.Application class, Deploying Our Service

javax.ws.rs.core.Cookie class, @CookieParam

javax.ws.rs.core.EntityTag, ETag

javax.ws.rs.core.GenericEntity class, javax.ws.rs.core.GenericEntity

javax.ws.rs.core.HttpHeaders class, Raw Headers

javax.ws.rs.core.Link class, Building Links and Link Headers

javax.ws.rs.core.NewCookie class, Returning Cookies

javax.ws.rs.core.PathSegment class, PathSegment and Matrix Parameters

javax.ws.rs.core.Request class, JAX-RS and conditional GETs

javax.ws.rs.core.Request interface, Variant processing

javax.ws.rs.core.Response class, Creating customers

javax.ws.rs.core.StreamingOutput interface, Retrieving customers, javax.ws.rs.core.StreamingOutput

javax.ws.rs.core.Variant class, Variant processing

javax.ws.rs.ext.ExceptionMapper, Exception Mapping

javax.ws.rs.ext.MessageBodyReader, MessageBodyReader

javax.ws.rs.ext.MessageBodyWriter, MessageBodyWriter

javax.ws.rs.ext.Providers interface, Pluggable JAXBContexts using ContextResolvers

javax.ws.rs.NotFoundException, Exception Hierarchy

javax.ws.rs.package, exceptions for HTTP errors, Exception Hierarchy

javax.ws.rs.WebApplicationException, javax.ws.rs.WebApplicationException

javax.xml.bind.JAXBContext class, Intro to JAXB

javax.xml.bind.JAXBElement class, JAXB JAX-RS Handlers

javax.xml.bind.Marshaller interface, Intro to JAXB

javax.xml.bind.Unmarshaller interface, Intro to JAXB

javax.xml.transform.Source interface, javax.xml.transform.Source

JAX-RS, Your First JAX-RS Service, JAX-RS and Java Interfaces-JAX-RS and Java Interfaces, Inheritance, Binding HTTP Methods, JAX-RS Injection, JAXB JAX-RS Handlers, JAX-RS and Conneg, Method Dispatching, Leveraging Conneg with JAXB, Complex Negotiation-Variant processing, Variant processing, Negotiation by URI Patterns, Asynchronous JAX-RS-Wrapping Up, AsyncInvoker Client API-Futures Versus Callbacks, Server Asynchronous Response Processing-Priority scheduling, Example ex09_1: Conneg with JAX-RS-Build and Run the Example Program

and Java interfaces, JAX-RS and Java Interfaces-JAX-RS and Java Interfaces

asynchronicity, Asynchronous JAX-RS-Wrapping Up, AsyncInvoker Client API-Futures Versus Callbacks, Server Asynchronous Response Processing-Priority scheduling

AsyncInvoker client API, AsyncInvoker Client API-Futures Versus Callbacks

server asynchronous response processing, Server Asynchronous Response Processing-Priority scheduling

binding HTTP methods, Binding HTTP Methods

conneg, JAX-RS and Conneg, Method Dispatching, Leveraging Conneg with JAXB, Complex Negotiation-Variant processing, Variant processing, Negotiation by URI Patterns, Example ex09_1: Conneg with JAX-RS-Build and Run the Example Program

complex negotiation, Complex Negotiation-Variant processing

leveraging conneg with JAXB, Leveraging Conneg with JAXB

method dispatching, Method Dispatching

negotiation by URI patterns, Negotiation by URI Patterns

variant processing, Variant processing

workbook example, Example ex09_1: Conneg with JAX-RS-Build and Run the Example Program

defined, Your First JAX-RS Service

inheritance, Inheritance

injection, JAX-RS Injection (see injection annotations and APIs)

JAXB handlers, JAXB JAX-RS Handlers

JAX-RS services, Your First JAX-RS Service-Wrapping Up, Developing a JAX-RS RESTful Service-Inheritance, Customer: The Data Class, CustomerResource: Our JAX-RS Service-Inheritance, Deploying Our Service-Deploying Our Service, Writing a Client, HATEOAS and JAX-RS-Embedding Links in XML, Building URIs with UriBuilder, Relative URIs with UriInfo, Building Links and Link Headers, Embedding Links in XML, Examples for Chapter 3-Examining the Source Code

deploying the service, Deploying Our Service-Deploying Our Service

developing a service, Developing a JAX-RS RESTful Service-Inheritance, Customer: The Data Class, CustomerResource: Our JAX-RS Service-Inheritance, Examples for Chapter 3-Examining the Source Code

CustomerResource class, CustomerResource: Our JAX-RS Service-Inheritance

data class, Customer, Customer: The Data Class

workbook examples, Examples for Chapter 3-Examining the Source Code

HATEOAS and, HATEOAS and JAX-RS-Embedding Links in XML, Building URIs with UriBuilder, Relative URIs with UriInfo, Building Links and Link Headers, Embedding Links in XML

building links and Link headers, Building Links and Link Headers

building URIs with UriBuilder, Building URIs with UriBuilder

embedding links in XML, Embedding Links in XML

relative URIs with UriInfo, Relative URIs with UriInfo

writing a client for, Writing a Client

JAXB framework, JAXB-JAXB and JSON, JAXB JAX-RS Handlers, Managing your own JAXBContexts with ContextResolvers, JAXB and JSON-XML to JSON using BadgerFish, Custom Marshalling, Leveraging Conneg with JAXB, Embedding Links in XML, Example ex06_1: Using JAXB-Build and Run the Example Program

custom marshalling, Custom Marshalling

JAX-RS handlers, JAXB JAX-RS Handlers, Managing your own JAXBContexts with ContextResolvers, Example ex06_1: Using JAXB-Build and Run the Example Program

managing JAXBContexts with ContextResolvers, Managing your own JAXBContexts with ContextResolvers

workbook example, Example ex06_1: Using JAXB-Build and Run the Example Program

JSON support, JAXB and JSON-XML to JSON using BadgerFish

leveraging conneg with, Leveraging Conneg with JAXB

XmlAdapter, Embedding Links in XML

JAXBContext class, Intro to JAXB, JAXB JAX-RS Handlers, Managing your own JAXBContexts with ContextResolvers, Pluggable JAXBContexts using ContextResolvers

managing your own instances with ContextResolvers, Managing your own JAXBContexts with ContextResolvers

pluggable instances, using ContextResolvers, Pluggable JAXBContexts using ContextResolvers

JAXBElement object, JAXB JAX-RS Handlers

JAXBMarshaller class (example), MessageBodyWriter-Pluggable JAXBContexts using ContextResolvers, Adding pretty printing, Pluggable JAXBContexts using ContextResolvers

adding pretty printing, Adding pretty printing

pluggable JAXBContexts using ContextResolvers, Pluggable JAXBContexts using ContextResolvers

JAXBUnmarshaller class (example), MessageBodyReader

JBossWeb, Deployment

Jettison, JAXB and JSON

Jetty, Deployment, Deployment Within a JAX-RS-Aware Container

JOSE JSON Web Encryption (JWE), Encrypting Representations

JOSE JSON Web Signature (JWS), JOSE JWS

JPA (Java Persistence), Customer: The Data Class, Exception Mapping

Entity beans, Customer: The Data Class

EntityNotFoundException, Exception Mapping

JSON, Defining the Data Format, JAXB and JSON-XML to JSON using BadgerFish, XML to JSON using BadgerFish, JSON and JSON Schema, JOSE JWS, Encrypting Representations, Example ex15_1: JSON Web Encryption-Build and Run the Example Program

JAXB support for, JAXB and JSON-XML to JSON using BadgerFish, XML to JSON using BadgerFish

XML to JSON using BadgerFish, XML to JSON using BadgerFish

JOSE JSON Web Encryption, Encrypting Representations

JOSE JSON Web Signature, JOSE JWS

JSON schema, JSON and JSON Schema

JSON Web Encryption (JWE), Example ex15_1: JSON Web Encryption-Build and Run the Example Program

JWE (JSON Web Encryption), Encrypting Representations, Example ex15_1: JSON Web Encryption-Build and Run the Example Program

K

KeyStore class, Client Security

keytool command-line utility, Client Certificate Authentication

L

language negotiation, Language Negotiation, Variant processing, Variant processing, Negotiation by URI Patterns

dealing with multiple languages, Variant processing

mapping of file suffixes to languages, Negotiation by URI Patterns

Last-Modified headers, Last-Modified, Concurrency

LineNumberReader class, java.io.InputStream, java.io.Reader

Link class, Building Links and Link Headers, Embedding Links in XML

JAXB XmlAdapter, Embedding Links in XML

link element, Common link element, Atom Links, Atom Links, Atom Links, Atom Links, Atom Links, W3C standardized relationships

href attribute, Atom Links

hreflang attribute, Atom Links

rel attribute, Atom Links

type attribute, Atom Links

W3C standardized relationships, W3C standardized relationships

Link headers, Building Links and Link Headers, Writing Link Headers, Example ex10_2: Link Headers-Build and Run the Example Program

building in JAX-RS 2.0, Building Links and Link Headers

workbook example, Example ex10_2: Link Headers-Build and Run the Example Program

writing in JAX-RS service, Writing Link Headers

Link.Builder class, Building Links and Link Headers

links, HATEOAS, HATEOAS, Atom Links, Decoupling interaction details, Link Headers Versus Atom Links, Building Links and Link Headers, Embedding Links in XML, Example ex10_1: Atom Links-Build and Run the Example Program

as key Internet feature, HATEOAS

Atom, Atom Links, Decoupling interaction details, Example ex10_1: Atom Links-Build and Run the Example Program

embedding in returned document, Decoupling interaction details

building links and Link headers in JAX-RS 2.0, Building Links and Link Headers

embedding in XML in JAX-RS service, Embedding Links in XML

Link headers versus Atom links, Link Headers Versus Atom Links

List object, representing query parameters, Collections

Location header (HTTP), Creating with POST

location transparency, Location transparency

LOCK method (HTTP), HTTP Method Extensions

M

man-in-the-middle attacks, Digest Authentication

Marshaller interface, Intro to JAXB

matrix parameters, Matrix Parameters, The Basics, PathSegment and Matrix Parameters

@MatrixParam annotation, The Basics

accessing using @PathParam annotation, PathSegment and Matrix Parameters

Maven build tool, Code Directory Structure

MaxAgeFeature class, DynamicFeature

media types, Creating customers, MessageBodyReader, Conneg Explained, Preference Ordering, Variant processing, Negotiation by URI Patterns, Creating New Media Types

client preferences, ordering, Preference Ordering

creating new, Creating New Media Types

listing preferred types in Accept header, Conneg Explained

mapping to file suffixes, Negotiation by URI Patterns

multiple types, matching against, Variant processing

specifying for message body of HTTP input request, Creating customers

specifying with @Consumes annotation, MessageBodyReader

message bodies, signing and encrypting, Signing and Encrypting Message Bodies-Encrypting Representations

MessageBodyReader interface, MessageBodyReader, Life Cycle and Environment, Building and Invoking Requests, Reader and Writer Interceptors

generic types and, Building and Invoking Requests

instances, life cycle and environment, Life Cycle and Environment

reader interceptors, Reader and Writer Interceptors

MessageBodyWriter interface, MessageBodyWriter, Life Cycle and Environment, javax.ws.rs.core.GenericEntity, Reader and Writer Interceptors

generic types and, javax.ws.rs.core.GenericEntity

instances, life cycle and environment, Life Cycle and Environment

writer interceptors, Reader and Writer Interceptors

meta-annotations, Binding HTTP Methods, Name Bindings

@NameBinding, Name Bindings

methods, Binding HTTP Methods, Binding URIs, Subresource Locators, The Basics, Method Dispatching

annotations used on parameters of JAX-RS resource methods, The Basics

binding HTTP operations to specific Java methods, Binding HTTP Methods

binding Java methods with @Path annotation, Binding URIs

Java methods annotated with @Path, Subresource Locators

method dispatching in JAX-RS, Method Dispatching

MIME (Multipurpose Internet Mail Extension) types, Representation-Oriented

MIME type properties, Preference Ordering

MKCOL method (HTTP), HTTP Method Extensions

most specific match wins algorithm, Precedence rules

MOVE method (HTTP), HTTP Method Extensions

Multipurpose Internet Mail Extension (MIME) types, Representation-Oriented

MultivalueMap<String, String>, MultivaluedMap<String, String> and Form Input

N

name bindings, Name Bindings, DynamicFeature Versus @NameBinding

DynamicFeature versus, DynamicFeature Versus @NameBinding

NewCookie class, Returning Cookies

NotAcceptableException, Exception Hierarchy

NotAllowedException, Exception Hierarchy

NotAuthorizedException, Server Request Filters

NotFoundException, Exception Hierarchy, Exception Hierarchy, Exception Hierarchy

defined, Exception Hierarchy

NotSupportedException, Exception Hierarchy

O

object model, designing for RESTful services, The Object Model-Model the URIs

objects, conversions in injection annotations, Java object conversion

one time password (OTP) authentication, One-Time Password Authentication-Build and Run the Example Program

operations, states versus, States versus operations

OPTIONS method (HTTP), The Uniform, Constrained Interface, Gotchas in Request Matching

@Path URI request matching, Gotchas in Request Matching

OutputStream class, javax.ws.rs.core.StreamingOutput

P

ParamConverter interface, ParamConverters

ParamConverterProvider interface, ParamConverters

parameter injection annotations, Your First JAX-RS Service, Creating customers, Updating a customer

createCustomer() method, Creating customers

updateCustomer() method, Updating a customer

PATCH method (HTTP), consuming in JAX-RS services, Example ex04_1: HTTP Method Extension-The Client Code

PathSegment class, PathSegment and Matrix Parameters, Matching with multiple PathSegments, The Server Code

@PathParam, matching with multiple PathSegments, Matching with multiple PathSegments

per-request objects, CustomerResource: Our JAX-RS Service

per-request resources, use of injection annotations, The Basics

POST method (HTTP), The Uniform, Constrained Interface, Creating with POST, States versus operations, Creating customers, Building and Invoking Requests, Concurrency, java.net.URL

annotation binding POST requests to createCustomer() method, Creating customers

conditional POSTs, Concurrency

creating a customer with, java.net.URL

creating a resource, Creating with POST

purging canceled orders, States versus operations

submitting request to server, Building and Invoking Requests

precedence rules for matching URI expressions, Precedence rules

preference ordering in conneg, Preference Ordering

pretty printing, Adding pretty printing

primitive types, conversions in injection annotations, Primitive type conversion

Principal interface, Programmatic Security

Priorities class, Ordering Filters and Interceptors

priority scheduling, using AsyncResponse, Priority scheduling

ProcessingException, Exception Processing

Product Object Model (POM), Code Directory Structure

programmatic security, Programmatic Security

properties, Customer: The Data Class

Providers interface, Pluggable JAXBContexts using ContextResolvers

proxy caches, Caching

publish and subscribe, Publish and subscribe

purging cancelled orders, States versus operations

PUT method (HTTP), The Uniform, Constrained Interface, Creating with PUT, Updating an Order, Customer, or Product, States versus operations, Updating a customer, Building and Invoking Requests, Concurrency, The Server Code

annotation binding PUT requests to updateCustomer() method, Updating a customer

conditional PUTs, Concurrency, The Server Code

creating a resource on the server, Creating with PUT

submitting request to server, Building and Invoking Requests

updating resources with, Updating an Order, Customer, or Product, States versus operations

Q

query string in a URI, Addressability, Browsing All Orders, Customers, or Products

client specifying parameters for dataset returned, Browsing All Orders, Customers, or Products

R

read and update (data format), Read and Update Format-The details

read data format, Read and Update Format

reader and writer interceptors, Reader and Writer Interceptors

Reader class, java.io.InputStream, java.io.Reader

ReaderInterceptor interface, Reader and Writer Interceptors, Reader and Writer Interceptors

implementing, Reader and Writer Interceptors

redirection, Exception Handling, Apache HttpClient

handling from Client API, Exception Handling

setting in HttpClient library, Apache HttpClient

redirection response codes, The Status Enum

RedirectionException, Exception Handling

regular expressions, Regular expressions, Example ex04_2: @Path with Expressions-The Client Code

@Path annotation with, workbook example, Example ex04_2: @Path with Expressions-The Client Code

in @Path expressions, Regular expressions

relationship names, for links, W3C standardized relationships

relatived links, Building Links and Link Headers

representation-oriented services, Introduction to REST, Representation-Oriented

Request class, JAX-RS and conditional GETs, JAX-RS and Conditional Updates

evaluatePreconditions() method, JAX-RS and Conditional Updates

Request interface, Variant processing

resources, Model the URIs

response codes, REST and the Rebirth of HTTP, Default Response Codes-Error Responses, Successful Responses, Error Responses

default, Default Response Codes-Error Responses, Successful Responses, Error Responses

error responses, Error Responses

successful responses, Successful Responses

W3C listing of, REST and the Rebirth of HTTP

Response object, Creating customers, Complex Responses, Exception Mapping, Building and Invoking Requests, Building and Invoking Requests, Viewing Accept headers, Expires Header, Exception handling

bufferEntity() method, Building and Invoking Requests

closing open Responses, Exception handling

creating using desired media type and language, Viewing Accept headers

mapping thrown application exception to, Exception Mapping

readEntity() method, Building and Invoking Requests

using to implement Expires header, Expires Header

Response.Status enum, The Status Enum

ResponseBuilder class, Complex Responses, Expires Header, Cache-Control

cacheControl() method, Cache-Control

setting Expires header, Expires Header

ResponseProcessingException, Exception handling

REST, Introduction to REST-Wrapping Up, Introduction to REST, REST and the Rebirth of HTTP, RESTful Architectural Principles-Wrapping Up, RESTful Architectural Principles, Addressability-Why Is the Uniform Interface Important?, Representation-Oriented,Communicate Statelessly, HATEOAS, HATEOAS, Example ex13_1: Chat REST Interface-Build and Run the Example Program

architectural principles, Introduction to REST, RESTful Architectural Principles-Wrapping Up, RESTful Architectural Principles, Addressability-Why Is the Uniform Interface Important?, Representation-Oriented, Communicate Statelessly, HATEOAS, HATEOAS

addressability, RESTful Architectural Principles

communicate statelessly, Communicate Statelessly

HATEOAS, HATEOAS, HATEOAS

representation-oriented, Representation-Oriented

uniform, constrained interface, Addressability-Why Is the Uniform Interface Important?

chat service interface, Example ex13_1: Chat REST Interface-Build and Run the Example Program

HTTP and, REST and the Rebirth of HTTP

RESTEasy, Reader and Writer Interceptors, Deployment Within a JAX-RS-Unaware Container, Client Security, RESTEasy Client Proxies-Advantages and Disadvantages, Installing RESTEasy and the Examples

Client Proxies, RESTEasy Client Proxies-Advantages and Disadvantages

ContainerRequestFilter to enable Basic Authentication, Client Security

installing, and workbook examples, Installing RESTEasy and the Examples

interceptors, use of, Reader and Writer Interceptors

registrationa and initialization, Deployment Within a JAX-RS-Unaware Container

RESTful services, Designing RESTful Services-Wrapping Up, The Object Model, Model the URIs, Defining the Data Format-Create Format, Assigning HTTP Methods-States versus operations, HATEOAS and Web Services, Atom Links, Advantages of Using HATEOAS with Web Services-Link Headers Versus Atom Links, Concurrency, Authentication

authentication, Authentication

designing, Designing RESTful Services-Wrapping Up, The Object Model, Model the URIs, Defining the Data Format-Create Format, Assigning HTTP Methods-States versus operations

assigning HTTP methods, Assigning HTTP Methods-States versus operations

defining the data format, Defining the Data Format-Create Format

modeling the URIs, Model the URIs

object model, The Object Model

HATEOAS and, HATEOAS and Web Services, Atom Links, Advantages of Using HATEOAS with Web Services-Link Headers Versus Atom Links

advantages of using together, Advantages of Using HATEOAS with Web Services-Link Headers Versus Atom Links

Atom links, Atom Links

updates, Concurrency

revalidation, Revalidation and Conditional GETs

root resources, Binding URIs

RuntimeException class, Exception Handling

S

scalability, Introduction to REST, Why Is the Uniform Interface Important?

of the Web, Introduction to REST

of uniform interface, Why Is the Uniform Interface Important?

securing JAX-RS, Securing JAX-RS-Wrapping Up, Authentication-Client Certificate Authentication, Authorization, Authentication and Authorization in JAX-RS, Enforcing Encryption, Authorization Annotations, Programmatic Security, Client Security, Verifying the Server, OAuth 2.0, Signing and Encrypting Message Bodies, Digital Signatures, DKIM/DOSETA, JOSE JWS, Encrypting Representations, Examples for Chapter 15-Build and Run the Example Program

authentication, Authentication-Client Certificate Authentication

authentication and authorization, Authentication and Authorization in JAX-RS, Enforcing Encryption, Authorization Annotations

authorization annotations, Authorization Annotations

enforcing encryption, Enforcing Encryption

authorization, Authorization

client security, Client Security, Verifying the Server

verifying the server, Verifying the Server

OAuth 2.0, OAuth 2.0

programmatic security, Programmatic Security

signing and encrypting message bodies, Signing and Encrypting Message Bodies, Digital Signatures, DKIM/DOSETA, JOSE JWS, Encrypting Representations

digital signatures, Digital Signatures

DKIM/DOSETA, DKIM/DOSETA

encrypting representations, Encrypting Representations

JOSE JWS, JOSE JWS

workbook examples, Examples for Chapter 15-Build and Run the Example Program

SecurityContext interface, Programmatic Security

server asynchronous response processing, Server Asynchronous Response Processing-Priority scheduling, AsyncResponse API

AsyncResponse API, AsyncResponse API

server errors, The Status Enum

server responses, Default Response Codes-Error Responses, Complex Responses-javax.ws.rs.core.GenericEntity, Complex Responses, Complex Responses, Returning Cookies, The Status Enum, javax.ws.rs.core.GenericEntity

complex, Complex Responses-javax.ws.rs.core.GenericEntity, Complex Responses, Complex Responses, Returning Cookies, The Status Enum, javax.ws.rs.core.GenericEntity

Response objects created with ResponseBuilder, Complex Responses

returning cookies, Returning Cookies

returning Response objects, Complex Responses

Status enum, The Status Enum

using GenericEntity class, javax.ws.rs.core.GenericEntity

default response codes, Default Response Codes-Error Responses

server-side filters, Server-Side Filters, Server Request Filters, Server Response Filters

server request filters, Server Request Filters

server response filters, Server Response Filters

server-side push, Server-side push

service-oriented architectures (SOAs), RESTful Architectural Principles

ServiceUnavailableException, Exception Hierarchy

ServletConfig interface, Basic Configuration

ServletContext interface, Basic Configuration

servlets, Your First JAX-RS Service, Deploying Our Service, javax.ws.rs.core.StreamingOutput, Deployment, Deployment, Deployment Within a JAX-RS-Aware Container, Deployment Within a JAX-RS-Unaware Container, Securing JAX-RS

asynchronous responses in Servlet 3.0, javax.ws.rs.core.StreamingOutput

deployment within JAX-RS-unaware container, Deployment Within a JAX-RS-Unaware Container

security, Securing JAX-RS

servlet container of application server, Deployment

standalone Servlet 3.x containers, integration with JAX-RS, Deployment Within a JAX-RS-Aware Container

standalone servlet containers, Deployment

standalone servlet deployment of JAX-RS service, Deploying Our Service

singletons, CustomerResource: Our JAX-RS Service, CustomerResource: Our JAX-RS Service, The Basics

CustomerResource class (example), CustomerResource: Our JAX-RS Service

injection annotations and, The Basics

SOAs (service-oriented architectures), RESTful Architectural Principles

sorting URI expressions, Precedence rules

Source interface, javax.xml.transform.Source

Spring, integration with JAX-RS, Spring Integration

spring-beans.xml file, Spring Integration

SSL, Securing JAX-RS, Client Security, Signing and Encrypting Message Bodies

HTTPS and, Signing and Encrypting Message Bodies

two-way, enabling with client certificates, Client Security

SSLFactory class, Client Certificate Authentication

state transitions, Decoupling interaction details

stateless communications, Introduction to REST, Communicate Statelessly

states versus operations, States versus operations

Status enum, The Status Enum

Status.Family enum, The Status Enum

StreamingOutput interface, Retrieving customers, javax.ws.rs.core.StreamingOutput

StringEntity class, Apache HttpClient

strings, Primitive type conversion, String, char[]

conversion between String and array of characters, String, char[]

conversion to primitive types, Primitive type conversion

subresource locators, Subresource Locators, Gotchas in Request Matching, Example ex04_3: Subresource Locators

ambiguities in matching, Gotchas in Request Matching

workbook example, Example ex04_3: Subresource Locators

successful responses, Successful Responses, The Status Enum

numeric range for codes, The Status Enum

T

template expressions, in sorting of @Path URI expressions, Precedence rules

ThreadLocal class, Authentication

TimeoutException, Using Futures

TimeoutHandler interface, Timeouts

Tomcat, Deployment Within a JAX-RS-Aware Container (see Apache Tomcat)

truststore, Client Certificate Authentication

Type class, MessageBodyWriter

types, Automatic Java Type Conversion, Primitive type conversion, Java object conversion, ParamConverters, Collections, Conversion failures

automatic conversion by injection annotations, Automatic Java Type Conversion, Primitive type conversion, Java object conversion, ParamConverters, Collections, Conversion failures

collections, Collections

conversion failures, Conversion failures

Java objects, Java object conversion

ParamConverters, ParamConverters

primitive types, Primitive type conversion

U

unchecked exceptions, Exception Handling

uniform, constrained interface, Introduction to REST, Addressability, Why Is the Uniform Interface Important?

importance of, Why Is the Uniform Interface Important?

UNLOCK method (HTTP), HTTP Method Extensions

Unmarshaller interface, Intro to JAXB

unmarshaller, writing using MessageBodyReader, MessageBodyReader

updata data format, Read and Update Format

updates, conditional, Concurrency-JAX-RS and Conditional Updates

URI patterns, Obtaining Individual Orders, Customers, or Products, Your First JAX-RS Service, CustomerResource: Our JAX-RS Service, HTTP Method and URI Matching, Negotiation by URI Patterns, Example ex04_2: @Path with Expressions-The Client Code

binding to Java methods with @Path annotations, CustomerResource: Our JAX-RS Service, HTTP Method and URI Matching

binding to Java methods with annotations, Your First JAX-RS Service

content negotiation by, Negotiation by URI Patterns

matching, workbook examples, Example ex04_2: @Path with Expressions-The Client Code

using to obtain individual objects from system, Obtaining Individual Orders, Customers, or Products

UriBuilder class, Building URIs with UriBuilder, Building Links and Link Headers

underlying Link.Builder, Building Links and Link Headers

UriInfo interface, Programmatic URI Information, Programmatic Query Parameter Information, Programmatic Query Parameter Information, Relative URIs with UriInfo, The Server Code

getQueryParameters() method, Programmatic Query Parameter Information

injecting instances using @Context annotation, Programmatic Query Parameter Information

workbook example, The Server Code

URIs, Addressability, Addressability, Addressability, Model the URIs, Browsing All Orders, Customers, or Products, Binding URIs, Building URIs with UriBuilder, Relative URIs with UriInfo, Example ex05_1: Injecting URI Information

binding with @Path annotation, Binding URIs

building with UriBuilder, Building URIs with UriBuilder

client specifying query parameters to limit returned data, Browsing All Orders, Customers, or Products

encodings of special characters, Addressability

injecting URI information, Example ex05_1: Injecting URI Information

modeling for RESTful service, Model the URIs

relative URIs with UriInfo, Relative URIs with UriInfo

standardized format, Addressability

URL class, Java object conversion, java.net.URL

URLs, conneg via URL patterns, Example ex09_2: Conneg via URL Patterns-Build and Run the Example Program

V

Variant class, Variant processing

VariantListBuilder class, Variant processing

versioning, Representation-Oriented, Flexible Schemas

embedding version information in media types, Flexible Schemas

of services, Representation-Oriented

W

W3C standardized relationships, W3C standardized relationships

WAR (Web ARchive), Deploying Our Service, Deployment, Spring Integration

spring-beans.xml file, Spring Integration

Web, Introduction to REST, REST and the Rebirth of HTTP, Caching, Securing JAX-RS

caching, Caching

security services and protocol, Securing JAX-RS

success of, Introduction to REST

use of HTTP, REST and the Rebirth of HTTP

Web ARchive, Deploying Our Service (see WAR)

WEB-INF/ directory, Deploying Our Service, Deployment

web.xml file, Deployment

WebApplicationException, Retrieving customers, javax.ws.rs.WebApplicationException

WebDAV, HTTP Method Extensions

WebTarget interface, Client and WebTarget, Building and Invoking Requests, The Client Code

building and invoking requests, Building and Invoking Requests

queryParam() method, The Client Code

workbook examples, Workbook Introduction, Installing RESTEasy and the Examples, Example Requirements and Structure, Code Directory Structure, Environment Setup, Examples for Chapter 4-The Client Code, Examples for Chapter 5-Build and Run the Example Program, Examples for Chapter 6-Build and Run the Example Program, Examples for Chapter 7-Build and Run the Example Program, Examples for Chapter 9-Build and Run the Example Program, Examples for Chapter 10-Build and Run the Example Program,Example ex11_1: Caching and Concurrent Updates-Build and Run the Example Program, Examples for Chapter 13-Build and Run the Example Program, Examples for Chapter 14-Build and Run the Example Program, Examples for Chapter 15-Build and Run the Example Program

asynchronous JAX-RS, Examples for Chapter 13-Build and Run the Example Program

caching and concurrent updates, Example ex11_1: Caching and Concurrent Updates-Build and Run the Example Program

content negotiation, Examples for Chapter 9-Build and Run the Example Program

deployment and integration, Examples for Chapter 14-Build and Run the Example Program

example requirements and structure, Example Requirements and Structure, Code Directory Structure, Environment Setup

code directory structure, Code Directory Structure

environment setup, Environment Setup

ExceptionMapper, writing, Examples for Chapter 7-Build and Run the Example Program

HATEOAS, Examples for Chapter 10-Build and Run the Example Program

HTTP method and URI matching, Examples for Chapter 4-The Client Code

installing RESTEasy and examples, Installing RESTEasy and the Examples

introduction to the workbook, Workbook Introduction

JAX-RS content handlers, Examples for Chapter 6-Build and Run the Example Program

JAX-RS injection, Examples for Chapter 5-Build and Run the Example Program

securing JAX-RS, Examples for Chapter 15-Build and Run the Example Program

WriterInterceptor interface, Reader and Writer Interceptors, Reader and Writer Interceptors, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

implementing, Reader and Writer Interceptors, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

workbook example, Example ex12_2: Implementing a WriterInterceptor-Build and Run the Example Program

WWW-Authenticate headers, Server Request Filters, Basic Authentication, Digest Authentication

X

XML, Defining the Data Format, Read and Update Format-The details, Create Format, Utility methods, JAXB, XML to JSON using BadgerFish, Atom Links

conversion to JSON using BadgerFish, XML to JSON using BadgerFish

data format for RESTful service, Defining the Data Format, Read and Update Format-The details, Create Format

create format, Create Format

read and update format, Read and Update Format-The details

embedding links in documents with Atom, Atom Links

mapping Java classes to, using JAXB, JAXB

utility methods used in CustomerResource to transform Customer objects to, Utility methods

XML schema, flexible, Flexible Schemas