SOAP веб-сервисы vs. Jakarta REST
Замените громоздкие SOAP/WSDL-эндпоинты чистыми Jakarta REST-ресурсами, возвращающими JSON.
@WebService
public class UserWebService {
@WebMethod
public UserResponse getUser(
@WebParam(name = "id") String id) {
User user = findUser(id);
UserResponse res = new UserResponse();
res.setId(user.getId());
res.setName(user.getName());
return res;
}
}
@Path("/users")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {
@Inject
UserService userService;
@GET
@Path("/{id}")
public User getUser(@PathParam("id") String id) {
return userService.findById(id);
}
}
Более лёгкие нагрузки
JSON компактнее, чем SOAP XML-конверты, что снижает потребление полосы пропускания и накладные расходы на разбор.
Простые аннотации
@GET, @Path и @Produces заменяют сложность WSDL, @WebService и @WebMethod.
Готовность к микросервисам
REST/JSON — это стандарт межсервисного взаимодействия в облачно-ориентированных архитектурах.
Широко доступно начиная с Jakarta EE 8 / Java 11
Веб-сервисы на основе SOAP опираются на WSDL-контракты, XML-маршализацию и JAX-WS-аннотации, создавая значительные накладные расходы. Jakarta REST (ранее JAX-RS) использует интуитивные аннотации, такие как @GET, @Path и @Produces, для предоставления RESTful JSON API. Модель программирования проще, полезные нагрузки меньше, а подход соответствует стилю взаимодействия современных микросервисов.