JAX-WS - это стандарт, поддерживаемый JCP (Процесс сообщества Java), и каждый полнофункциональный сервер приложений реализует его (или, по крайней мере, обеспечивает реализацию для него). Он прост в использовании (вам просто нужно несколько аннотаций в конечной точке класса обслуживания), и вам не нужно беспокоиться о реализации (и ваше приложение будет нести в себе меньше зависимостей).
Spring-WS был широко распространен, когда JAX-WS находился в стадии разработки (или вообще не существовал). Он достигает того же, что и JAX-WS, но немного более громоздок. По моему опыту, он теряет адептов в пользу последних.
Службы, основанные на HTTP (как HTTP invoker и REST), утверждают, что они немного легче, чем JAX-WS (поскольку конечные точки не должны обрабатывать конверты SOAP), но не так строго типизированы, как службы на основе WSDL.
Когда мне приходится выбирать, я обычно выбираю JAX-WS, если нет веской причины для подхода на основе REST. Мне вообще не нравится HTTP Invoker, потому что это проблемы безопасности (даже если речь идет о интрасетях), но я думаю, что это своего рода личный выбор.