Java Web Services can play a vital role in enterprise application development. A web service can be described as a client and server application that communicates over HTTP, which provides a standard means for communication and interoperability between different applications. There are many different web service implementations available across each of the different programming platforms. A web service is made accessible via an endpoint implementation. Clients and servers transmit messages to exchange information between various web services. Entire applications can be implemented using web services that transmit messages and data to and from each other. The two main web service implementations that have been part of Java EE over the past few releases are the Java API for XML Web Services (JAX-WS) and the Java API for RESTful Web Services (JAX-RS). In the most recent release, Java EE 8, JAX-WS was not updated and it is no longer deemed as a “current” technology. Therefore, most recipes in this chapter cover JAX-RS. However, a handful of JAX-WS recipes have been added for complete coverage.