jax - resteasy example
JAX-RS 2.0 cambio de implementación predeterminada (1)
Bueno, JAX-RS se basa en la convención de proveedores de servicios. En las primeras líneas del método newBuilder
puedes leer:
Object delegate = FactoryFinder.find(JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY,
JAXRS_DEFAULT_CLIENT_BUILDER);
Donde JAXRS_DEFAULT_CLIENT_BUILDER_PROPERTY
es "javax.ws.rs.client.ClientBuilder"
A su vez, FactoryFinder
ve
- primero para el nombre de la clase en
META-INF/services/javax.ws.rs.client.ClientBuilder
- luego en la propiedad
javax.ws.rs.client.ClientBuilder
en${java.home}/lib/jaxrs.properties
- finalmente en la propiedad del sistema
javax.ws.rs.client.ClientBuilder
.
Entonces, para usar RESTEasy, debes crear un archivo
META-INF/services/javax.ws.rs.client.ClientBuilder
con el texto:
org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder
que es el nombre de la clase de RESTEasy ClientBuilder
Estoy tratando de usar RESTEasy como implementación de cliente JAX-RS 2.0. El problema es que tengo la excepción de tiempo de ejecución:
06-28 13:29:06.410: E/AndroidRuntime(5745): Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
06-28 13:29:06.410: E/AndroidRuntime(5745): at javax.ws.rs.client.ClientBuilder.newBuilder(ClientBuilder.java:103)
Así que el método newBuilder()
está buscando JerseyClientBuilder
si lo entiendo correctamente. ¿Cómo puedo decirle al sistema que use RESTEasy en su lugar?