Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Web Services REST - Proyecto JAX-RS

Estas en el tema de Web Services REST - Proyecto JAX-RS en el foro de Java en Foros del Web. Hola, Soy principiante en WS, y estoy haciendo pruebas con el Eclipse, me he descargado un ejemplo básico para empezar y ya me ha aparecido ...
  #1 (permalink)  
Antiguo 16/04/2015, 03:51
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 3
Web Services REST - Proyecto JAX-RS

Hola,

Soy principiante en WS, y estoy haciendo pruebas con el Eclipse, me he descargado un ejemplo básico para empezar y ya me ha aparecido mi primera duda

Tengo el siguiente método:

@GET
@Produces(value="text/plain")
@Path(value="{id}")
public String getPropety(@PathParam("id") int id) {
if (id > -1 && id < list.length -1) {
return "Direccion: " + list[id];
}
else {
return "La direccion consultada no existe";
}
}

Y funciona correctamente, le paso el id y me devuelve la cadena correspondiente del List.

Este método venía con el ejemplo descargado, ahora quiero crear mi propio método, es el siguiente:

@GET
@Produces(value="text/plain")
@Path(value="{address}")
public String getPropety(@PathParam("address") String address) {
String retValue = "";
for (int i = 0; i < list.length; ++i) {
System.out.println("Direccion1: " + address + "| Direccion2: " + list[i]);
if (address.equals(list[i]))
{
retValue= "Direccion: " + list[i];
break;
}
else
{
retValue= "La direccion consultada no existe: " + address;
}
}
return retValue;
}

En este caso, en lugar de un ID le paso una cadena y si es igual a la del List me la devuelve, pero cuando trato de obtener el recurso en el navegador me da el siguiente error:
[16/04/15 9:59:11:350 CEST] 00000095 RequestProces I org.apache.wink.server.internal.RequestProcessor logException Se ha producido WebApplicationException (404 - Not Found) durante la invocación de la cadena de manejadores

No me permite tener los dos métodos, si comento cualquiera de los dos, entonces si me funciona ambos, pero no puedo tener los dos a la vez.

Muchas gracias,
  #2 (permalink)  
Antiguo 16/04/2015, 04:05
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Web Services REST - Proyecto JAX-RS

Cita:
pero cuando trato de obtener el recurso en el navegador me da el siguiente error:
¿Qué significa eso?

En un servicio JAX-WS no puedes acceder a la url de un método, accedes al wsdl de todos los métodos.

Para poder acceder a un método a través de URL, tienes que usar servicios JAX-RS.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 16/04/2015, 04:29
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Web Services REST - Proyecto JAX-RS

Buenas,

Respecto al significado de lo que me preguntas, es posible que no se exprese de esa manera, he visto que se le llama recurso REST, a cualquier cosa que sea direccionable a través de la Web.

En este caso no estoy usando ningún archivo wsdl en el proyecto.

Cuando en el navegador llamo a:

http://localhost:9080/JAXRS/jaxrs/addresses/2
http://localhost:9080/JAXRS/jaxrs/addresses/Avda Luis XV

Funciona correctamente, solo si tengo un método de los dos activo, en la clase java, a activo, me refiero, a que tengo que comentar uno de los dos en el código para que me funcione, si tengo los dos, es cuando me da el error citado anteriormente.

Un saludo,
  #4 (permalink)  
Antiguo 16/04/2015, 05:03
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: Web Services REST - Proyecto JAX-RS

En REST lo que se utiliza para diferenciar un método de otro es su Path, no los parámetros que recibe.

En tu caso tienes dos métodos con un path dinámico, así que es imposible que los diferencie.

Tienes que hacer que tengan distinto path, o que la dirección o el id vayan en un queryParameter.

http://stackoverflow.com/questions/1...nt-queryparams
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 16/04/2015, 05:05
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Web Services REST - Proyecto JAX-RS

Ya esta resuelto, muchas gracias por la respuesta.
  #6 (permalink)  
Antiguo 16/04/2015, 05:07
Avatar de estaisaderezados  
Fecha de Ingreso: noviembre-2010
Ubicación: Madrid
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Web Services REST - Proyecto JAX-RS

Si, efectivamente, es lo que decías, el path es el que diferencia el método, resuelto, muchas gracias por la rapidez.

Etiquetas: web-services
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.