Java supports both SOAP-based and REST-style web services.
Java API for XML Web services (JAX-WS) can be used for SOAP-based as well as REST-style, but more suited for SOAP.
The current version of JAVA–WS is 2.x and previous version was called JAX RPC 1.x.
JAX–WS is commonly shortened to JWS for Java Web Services.
JAX–WS was initially seperate, but was then bundled into the Metro web services pack.
Metro is part of java 6 and above and hence JAX-WS web services can be compiled and deployed in java 6 and above without any additional software.
The downloaded Metro release is a way to do JAX–WS under core java 5.
You can download metro from metro.java.net and just JAX-WS from jax-ws.java.net.
JAX-WS alone supports only SSL (it supports WS-I BSP).
Hence if you want end-to-end message-level security then you need the WSIT/Tango layer of Metro.
In addition to JAX-WS RI, metro contains another layer, WSIT/Tango which provides WS-*: Security, SecureConversation, Trust, ReliableMessaging, AtomicTransactions and MEX.
JAX–WS require at least core java 5 because of the support of annotation.
EJBs can serve as endpoints if hosted in a container with runtime and web service support.
Java API for XML – Restful web services (JAX–RS) is the standard specification for REST web services.
Jersy is a popular JAX-RS implementation.
Java defines standard REST support via JAX-RS (The Java API for RESTful Web Services) in JSR 311.
You can download JAX-RS from Jersy Homepage at jersey.java.net.
Jersey is the open source, production quality, JAX-RS (JSR 311) Reference Implementation for building RESTful Web services.
In addition to the Reference Implementation, Jersey also provides an API so that developers may extend Jersey to suit their needs.
Jersy is only one of the implementations for it. There are also other implementations like RESTEasy which may also be used.
Since all these implementations are based on the JAX-RS API, you can easily switch to another implementation anytime.