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

¿Hacen falta servlets para usar un web service ?

Estas en el tema de ¿Hacen falta servlets para usar un web service ? en el foro de Java en Foros del Web. He creado un 'Dynamic Web Project / Web Service' con su respectivo 'Dynamic Web Project / Web service Client' en Eclipse. Es un sistema muy ...
  #1 (permalink)  
Antiguo 07/06/2017, 08:57
 
Fecha de Ingreso: diciembre-2013
Mensajes: 16
Antigüedad: 10 años, 6 meses
Puntos: 1
Pregunta ¿Hacen falta servlets para usar un web service ?

He creado un 'Dynamic Web Project / Web Service' con su respectivo 'Dynamic Web Project / Web service Client' en Eclipse.
Es un sistema muy simple con 2 campos de logueo. Un método del WebService va a la base de datos y comprueba que el usuario exista; en tal caso muestra "Loagueado!" si no "Error".

Lo que no entiendo es lo que sucede detrás, cuando accedo al WebServiceClient mediante el navegador: http://localhost:7001/url_webservice_cliente/cliente.jsp
Se entiende que un WebService no responde peticiones http, el servlet lo hace.

Accediendo a WebLogic (http://localhost:7001/console), en la pestaña 'Monitoring' de cada servicio me aparecen todos los .jsp como servlets. Entonces no sé qué es lo que hace WebLogic y me presta confusión.

¿Alguien lo sabe?
  #2 (permalink)  
Antiguo 07/06/2017, 10:57
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 5 meses
Puntos: 11
Respuesta: ¿Hacen falta servlets para usar un web service ?

Primero que nada un cliente Web Service SOAP se hace de la siguiente manera en eclipse:
1. cree un proyecto java normal y luego clic derecho->new Web Service client->
2. pegar la url o archivo wsdl y bajar la barra a Develop Client
3. Esto genera varios archivos. La clase que hay que instanciar para consumir el Web service soap siempre es la que termina SoapProxy.

Por lo tanto para consumir un WS no necesitas un archivo .jsp si no simplemente una clase java.

Por otro lado, los servidores de aplicaciones contenedores de Servlets, sea tomcat, glassfish, weblogic, etc. tienen un motor de traducción que convierte todo .jsp en un servlet y eso es lo que ves en la pestaña de Weblogic.

Este funcionamiento que acabo de explicar no tiene nada que ver con un WS, sino que es como funcionan los JSPs en java.

En cambio lo que puse al principio de eclipse, eso si te genera un WS cliente soap. Una vez creadas las clases generadas tienes que hacer algo como esto:

Código Java:
Ver original
  1. public class ClienteSoapJava {
  2.     public static void main(String[] args)throws RemoteException{
  3.         ConversionServiceProxy servicio=new ConversionServiceProxy();
  4.         double conversion=servicio.conversionRate("USD", "MXN");
  5.         System.out.println(conversion);
  6.     }
  7. }
ConversionServiceProxy es la clase que se debe invocar para consumir el WS (En mi ejemplo, por que puede se distinta ), entonces tienes que crear un objeto de esa clase y llamar a uno de sus metodos conversionRate en este caso (tambien puede ser distinto), que ya es el método del WS a invocar.

Como vez son dos cosas distintas, una es el consumo de WS y la otra es la traducción de jsp a servlets que realiza cualquier servidor de aplicaciones java.

Como puedes ver, la respuesta es no, no hace falta un servlet para consumir un ws soap como cliente. Pero si estuvieras en un servlet, si puedes consumir un WS desde ahi.

Última edición por abrahamhs; 07/06/2017 a las 11:01 Razón: ortografia
  #3 (permalink)  
Antiguo 08/06/2017, 01:39
 
Fecha de Ingreso: diciembre-2013
Mensajes: 16
Antigüedad: 10 años, 6 meses
Puntos: 1
Pregunta Respuesta: ¿Hacen falta servlets para usar un web service ?

Gracias por responder, sé que me desvio del tema, pero a ver si me puedes aclarar más las ideas.

Cita:
La clase que hay que instanciar para consumir el Web service soap siempre es la que termina SoapProxy.
ConversionServiceProxy es la clase que se debe invocar para consumir el WS
¿Entonces, es la que termina en Proxy?

En mis proyectos no tengo un main ni en WebService ni en WebServiceClient , cómo hace para ejecutarse? Acaso WebLogic lo crea implicitamente al convertir los JSP en servlets ?

Cita:
Como puedes ver, la respuesta es no, no hace falta un servlet para consumir un ws soap como cliente.
- Aunque en la url ponga jsp (eso tiene que ver con el fichero web.xml), el contendor de aplicaciones los convierte en servlets (aunque no sé cómo ver el código resultante) :/
- De que otras maneras se puede consumir un ws?
  #4 (permalink)  
Antiguo 08/06/2017, 10:11
 
Fecha de Ingreso: enero-2009
Ubicación: Kandor
Mensajes: 209
Antigüedad: 15 años, 5 meses
Puntos: 11
Respuesta: ¿Hacen falta servlets para usar un web service ?

Para crear un WS soap tienes que hacer lo siguiente:
Para crear el web service:
1. Crear un dinamic web proyect->programo una clase con los métodos del web service
2. Clic derecho a la clase ->WebService->CreateWebService
Cuidar que la barra de arriba esta en "start service" y la de abajo en "no client" que es configuracion por default
A veces sale un mensaje que pide algo de habilitar la escritura del wsdl, darle si a todo
Tambien nos pide agregar un Server como tomcat Agregarlo
A veces sale una ventana con checks de UDDI Registry dar en finish sin palomear nada
Mi wsdl queda en WebContent/wsdl

Con eso creas un WebService Server y el archivo wsdl es quien le dice al servidor de aplicaciones como invocar tu WS y como invocar el código de tu clase. El WebService Cliente se hace como te mencione en el comentario anterior con la clase que termina en proxy.
Y si te das cuenta jamas mencione JSPs, porque eso es otra cosa.

La definición de un WebService es un poco ambigua (para clasificar tipos) pero como vi hace años en alguna pagina yo los clasificaría en estos tipos:

Sockets WS de bajo nivel
protocolo http WS de bajo nivel
Servlets WS de nivel intermedio
SOAP WS de alto nivel
REST WS de nivel intermedio/Alto

Servlets, SOAP y REST internamente usan el protocolo http, y el protocolo http internamente usa sockets.
Y pongo Sockets, protocolo http, y servlets porque caen la definición de WS de por ejemplo wikipedia:
Un servicio web (en inglés, web service o web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones.

Aunque la jerga actual de Webservice generalmente se refiere a SOAP y a REST, los otros tipos también lo son.

Las explicaciones que te he dado anteriormente en eclipse a sido todo con respecto a SOAP.

Última edición por abrahamhs; 08/06/2017 a las 10:30 Razón: ortografia

Etiquetas: servlets, weblogic, webservice
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 21:29.