Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > WebService de test

Hola a todos!

Estoy testeando un web service de un ejemplo de la web en mi maquina (Mac mini) y no funciona. A ver si alguien le apetece y le puede echar un ojo conmigo.

El codigo es como sigue, en primer lugar el .java

package test; //Esta es la estructura de paquete creada

import javax.ws.rs.*; //Importamos la librería para manejar RESTful

@Path("getMessage/{type}") //Especificamos una ruta que se debe usar para invocar este método y un parámetro (tipo)
public class WebService
{
@GET //Indicamos que este método se ejecutará al recibir una petición por get
@Produces({"text/plain", "text/html","text/xml", "application/json"}) //Indicamos que el tipo de salida es texto plano, XML, HTML o JSON
public String mostrarMensaje(@PathParam("type") String tipo)//Método que recibe como parametro el valor de type en la URL
{
if(tipo.equalsIgnoreCase("texto"))
{
return "Éste es mi primer servicio RESTful con Java";
}
else if (tipo.equalsIgnoreCase("html"))
{
return "<html lang='es'><head><meta charset='UTF-8'/><title>WS</title></head><h1>Éste es mi primer servicio RESTful con Java</h1></html>";
}
else if(tipo.equalsIgnoreCase("xml"))
{
return "<?xml version='1.0' encoding='UTF-8'?><root><value>Éste es mi primer servicio RESTful con Java</value></root>";
}
else if(tipo.equalsIgnoreCase("json"))
{
return "{\"root\":{\"value\":\"Éste es mi primer servicio RESTful con Java\"}}";
}
else
{
return "Tipo no soportado";
}
}
}

en segundo lugar el web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>WebService</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

<param-name>jersey.config.server.provider.packages</param-name>
<param-value>test</param-value>

<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebService</servlet-name>
<url-pattern>/servicios</url-pattern>
</servlet-mapping>
</web-app>

The name of the app is leanRouteWS

El error cuando uso la siguiente URL para la request es:

http://localhost:8080/RESTful/servicios/getMessage/xml/

obtengo el siguiente error:

Estado HTTP 404 - /RESTful/servicios/getMessage/xml/

type Informe de estado

mensaje /RESTful/servicios/getMessage/xml/

descripción El recurso requerido no está disponible.

Apache Tomcat/7.0.64

Detectais donde esta el error?

Saludos, Isaac

octubre 20, 2015 | Registered Commenterisaacdura

Estas seguro de que RESTful es el context root ?
Si es un ear chequeaste el application.xml? En el caso de ser un war o un ear y no figurar en el application, chequeaste el glassfish-web.xml o sun-web.xml? Estoy suponiendo por la declaración de tu ServletContainer que utilizas Glassfish como tu servidor de aplicaciones.
Por último las dos opciones más sencillas. Prueba con el nombre de la app como context, es el que se utiliza por default cdo no defines ninguno explicita// o más fácil chequea el log de despliegue de tu servicio, ahi verás claramente el contex-root de la aplicación desplegada.

octubre 23, 2015 | Unregistered CommenterChavitoDel8