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