SOAP Web Services vs Jakarta REST
Substitua endpoints pesados SOAP/WSDL por recursos Jakarta REST limpos retornando 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);
}
}
Payloads mais leves
JSON é mais compacto que envelopes SOAP XML, reduzindo banda e overhead de parsing.
Anotações simples
@GET, @Path e @Produces substituem a cerimônia de WSDL, @WebService e @WebMethod.
Pronto para microsserviços
REST/JSON é o padrão para comunicação entre serviços em arquiteturas cloud-native.
Amplamente disponível desde o Jakarta EE 8 / Java 11
Web services baseados em SOAP dependem de contratos WSDL, marshalling XML e anotações JAX-WS que adicionam overhead significativo. Jakarta REST (anteriormente JAX-RS) usa anotações intuitivas como @GET, @Path e @Produces para expor APIs RESTful JSON. O modelo de programação é mais simples, os payloads são menores e a abordagem está alinhada com a comunicação moderna entre microsserviços.