TL; DR
JAX-WS jest przeznaczona dla XML oparte usług internetowych, takich jak mydło. JAX-RS nie ma tego samego ograniczenia.
JAX-WS jest ogólnie ukierunkowany na interakcje serwer-serwer z dobrze zdefiniowanymi umowami (WSDL) i zwykle, gdy strona usługi i klienta są z oddzielnych grup. Jest to bardzo wymagające zasoby, więc nie jest możliwe wykonywanie interakcji między klientem a serwerem, w których zdolność sieci lub urządzenia klienckiego jest mniejsza niż optymalna.
JAX-RS jest nastawiony na interakcje między klientem a serwerem, mimo że serwer jest w porządku. Ponieważ ma niewielkie wymagania serwisowe, może być dostosowany do potrzeb klienta.
Więcej informacji
JAX-RS API zapewnia tylko podejść kodu pierwszego, natomiast JAX-WS umożliwia zarówno kod pierwszego (na ogół nie zaleca) i umowa pierwszego z wykorzystaniem plików WSDL (bardziej zalecane).
JAX-RS 2.0 wprowadza API klienta, które jest inteligentnym opakowaniem dla HttpUrlConnection, które ma dużo więcej możliwości mapowania, JAX-WS jest również opakowaniem, ale dane, które zajmuje w implementacjach referencyjnych, to tylko XML.
JAX-RS ma tę zaletę, że tworzy interfejsy API, które są prostsze w tworzeniu i analizowaniu komunikatów dla różnych przeglądarek i urządzeń mobilnych, a mianowicie dla struktury JSON. Nie wprowadza pojęcia koperty i używa do tego protokołu HTTP. Nie wprowadza kryptografii ani bezpieczeństwa, używa do tego protokołu HTTPS.
JAX-WS, chociaż działa w oparciu o protokół HTTPS do kryptografii, zapewnia dodatkowe zabezpieczenia za pomocą WS-SecurityPolicy itd. Ponadto kontrakty są ustalane z wykorzystaniem WSDL i mogą być weryfikowane poza aplikacją przy użyciu ESB, takich jak DataPower.
Więc co wybrać
JAX-WS jest generalnie nastawione na serwerze do interakcji serwera z dobrze zdefiniowanymi umów (WSDLs) i zazwyczaj, gdy usługa i po stronie klienta są z oddzielnymi grupami. Jest to bardzo wymagające zasoby, więc nie jest możliwe wykonywanie interakcji między klientem a serwerem, w których zdolność sieci lub urządzenia klienckiego jest mniejsza niż optymalna.
JAX-RS jest nastawiony na interakcje między klientem a serwerem, mimo że serwer jest w porządku. Jedynym zobowiązaniem umownym między klientem a serwerem jest komunikat i nagłówki żądań. Ponieważ ma niewielkie wymagania serwisowe, może być dostosowany do potrzeb klienta.
Jednak używanie API usług RESTful jest podobne do wykonywania meta-programowania jak Ruby i Python, co opóźnia problemy w czasie wykonywania, ponieważ nie ma zdefiniowanego schematu uzgodnionego i technicznie wymuszonego przez obie strony. W związku z tym nie polecam usług RESTful na całym świecie, ale poleciłbym go, gdybym miał kontrolę nad dwiema stronami, co zwykle dzieje się, gdy tworzysz aplikację internetową, która używa statycznego HTML/CSS/JS i rozmawia z serwerem RESTful dla dane.