• No se han encontrado resultados

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTÓ

N/A
N/A
Protected

Academic year: 2021

Share "INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTÓ"

Copied!
24
0
0

Texto completo

(1)

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE COMPUTÓ

PRACTICA:

“Introducción a JAX-WS Web Services”

MATERIA:

WEB APPLICATION DEVELOPMENT

PROFESOR:

CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO

ALUMNA:

ANA KAREN ECHAVARRIA ACOSTA

GRUPO:

(2)

INTRODUCCION

API Java para XML Web Services (JAX-WS), JSR 224 , es una parte importante de los de Java EE 5 y 6 plataformas de EE. Un seguimiento a la liberación de la API Java para RPC basado en XML 1.1 (JAX-RPC), JAX-WS simplifica la tarea de desarrollar servicios web utilizando la tecnología Java. Se ocupa de algunos de los temas de JAX-RPC 1.1, proporcionando soporte para múltiples protocolos como SOAP 1.1, SOAP 1.2, XML, y proporcionando un servicio de apoyo a los protocolos adicionales, junto con HTTP. JAX-WS utiliza JAXB 2.0 para el enlace de datos y es compatible con

personalizaciones para el control de las interfaces generadas extremo de servicio. Con su soporte para anotaciones, JAX-WS simplifica el desarrollo de servicios web y reduce el tamaño de los archivos JAR de tiempo de ejecución.

.

(3)

Crear un servicio Web

El objetivo de este ejercicio es crear un proyecto adecuado para el contenedor de implementación que se decida utilizar. Una vez que tenga un proyecto, se creará un servicio web en el mismo.

La elección de un contenedor

Se puede instalar el servicio web en un contenedor web o en un contenedor EJB. Esto depende de la elección de la aplicación. Si se va a crear una aplicación Java EE 6, utilizar un contenedor web.

1. Elija Archivo> Nuevo Proyecto . Seleccione la aplicación web desde la categoría de Java Web o módulo EJB de la categoría de Java EE.

(4)

Puede crear un servicio web JAX-WS en un proyecto Maven. Elija Archivo> Nuevo Proyecto y luego Maven de aplicaciones Web o Maven módulo EJB de la categoría de Maven..

2. Nombre del proyecto es CalculatorWSApplication. Seleccione una ubicación para el proyecto. Haga clic en Siguiente.

3. Seleccione el servidor y la versión Java EE y haga clic en Finalizar.

Para utilizar el servidor de Oracle WebLogic, registrar el servidor en el IDE . Además, si usted está utilizando el servidor WebLogic, ver el screencast de implementar una aplicación Web para Oracle WebLogic .

(5)

Crear un servicio Web desde una clase Java

1. Haga clic en el nodo CalculatorWSApplication y seleccione Nuevo> Web Service.

2. El nombre del servicio web es: CalculatorWS y el nombre del paquete: org.me.calculator. Deja Crear servicios Web desde cero seleccionado. 3. Si va a crear un proyecto Java EE 6 en GlassFish o WebLogic, seleccione

Implementar el servicio Web como un bean de sesión sin estado.

De forma predeterminada, el servidor web Tomcat no es compatible con Enterprise Java Beans (EJB). Por lo tanto no se puede implementar un servicio web EE6 como un bean de sesión sin estado en una instalación fuera de la caja de Tomcat 7. Sin

(6)

embargo, ver el proyecto de Apache TomEE (especialmente OpenEJB) para las ampliaciones de Tomcat.

4. Haga clic en Finalizar. La ventana de proyectos muestra la estructura del nuevo servicio web y el código fuente se muestra en el área de edición.

Adición de una operación para el servicio Web

El objetivo de este ejercicio consiste en añadir al servicio web de una operación que suma dos números recibidos de un cliente. El NetBeans IDE proporciona un cuadro de diálogo para añadir una operación a un servicio web. Puede abrir este diálogo, ya sea en el diseñador visual o servicio web en el menú de contexto del servicio web.

(7)

Para agregar una operación para el servicio web:

1. Cambie a la vista Diseño en el editor.

2. Haga clic en Agregar operación, ya sea en el diseñador visual o el menú contextual. El cuadro de diálogo Agregar se abre la Operación.

3. En la parte superior de la caja de la Operación de diálogo Agregar, escriba “add” en el nombre y tipo “int” en el tipo devuelto en la lista desplegable. 4. En la parte inferior del cuadro de diálogo Agregar Operación, haga clic en

Agregar y crear un parámetro de tipo int llamada i.

5. Haga clic en Agregar nuevo y crear un parámetro de tipo int llamada j. Ahora puede ver lo siguiente:

(8)

6. Haga clic en Aceptar en la parte inferior del cuadro de diálogo Agregar Operación. Vuelva al editor.

7. Retire la operación predeterminada “hello”, ya sea mediante la supresión de el método hello () en el código fuente o mediante la selección de la operación hello en el diseñador visual y haciendo clic en Quitar la operación.

(9)

8. Haga clic en Origen y ver el código que ha generado en los pasos anteriores. Se diferencia si ha creado el servicio como un grano de EE6 apátridas o no. ¿Puede usted ver la diferencia en las capturas de pantalla por debajo? (Un servicio EE6 que no se implementa como un bean sin estado se asemeja a un servicio de EE5).

(10)

9. En el editor, extender el esqueleto de operación de añadir a la siguiente (los cambios están en negrita):

@WebMethod

public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) { int k = i + j;

return k;

}

Como se puede ver en el código anterior, el servicio web se limita a recibir dos números y devuelve su suma. En la siguiente sección, se utiliza el IDE para probar el servicio web.

Implementar y probar el servicio Web

Después de implementar un servicio web a un servidor, puede utilizar el IDE para abrir el cliente del servidor de prueba, si el servidor tiene un cliente de prueba. El GlassFish y servidores WebLogic proporcionar a los clientes de prueba.

Si usted está utilizando el servidor web Tomcat, no hay ningún cliente de prueba. Sólo se puede ejecutar el proyecto y ver si la Tomcat abre la pagina Servicios web. En este caso, antes de ejecutar el proyecto, es necesario hacer que el servicio web del punto de entrada a su solicitud. Para hacer que el servicio web del punto de entrada a su solicitud, haga clic en el nodo del proyecto CalculatorWSApplication y seleccione Propiedades. Abra las propiedades de Ejecutar y escriba CalculatorWS o en el campo de dirección URL relativa. Haga clic en Aceptar. Para ejecutar el proyecto, haga clic en el nodo del proyecto de nuevo y seleccione Ejecutar.

Para probar la implementación exitosa de un servidor GlassFish o WebLogic:

1. Haga clic en el proyecto y elija Implementar. El IDE se inicia el servidor de aplicaciones, se basa la solicitud, e implementa la aplicación en el servidor.

(11)

Puedes seguir el progreso de estas operaciones en el CalculatorWSApplication (run-deploy) y el servidor GlassFish o Tomcat pestañas en la vista de salida. 2. En la ficha de la IDE de proyectos, expanda el nodo de Servicios Web del

proyecto CalculatorWSApplication. Haga clic en el nodo CalculatorWS, y elegir de pruebas de servicio Web.

El IDE abre la página de probador en su navegador, si ha implementado una

aplicación Web en el servidor GlassFish. Para el servidor web Tomcat y despliegue de módulos EJB, la situación es diferente:

o Si implementa en el servidor GlassFish, el tipo de dos números en la página de

(12)

La suma de los dos números en la pantalla:

Las muestras

Usted puede abrir una versión bean completa EE6 sin estado del servicio de

Calculadora seleccionando Archivo> Nuevo proyecto y la navegación de muestras> Servicios Web en Java> Calculadora (EE6 ).

Un servicio de calculadora de Maven y un cliente Calculadora de Maven están disponibles en muestras> Maven.

Consumir el servicio Web

Ahora que ha desplegado el servicio web, es necesario crear un cliente para hacer uso del método de extensión del servicio web. En este caso, se crean tres clientes-una clase de Java en una aplicación Java SE, un servlet y una página JSP en una

aplicación web.

Nota: Un tutorial más avanzado se centra en los clientes está en desarrollo JAX-WS

clientes de servicios Web .

Cliente 1: Java Class en Java SE Aplicación

En esta sección, puede crear una aplicación estándar de Java. El asistente que se utiliza para crear la aplicación también crea una clase Java. A continuación, utilizar las herramientas del IDE para crear un cliente y consumir el servicio Web que creó en el comienzo de este tutorial.

(13)

1. Elija Archivo> Nuevo Proyecto. Seleccione la aplicación Java desde la categoría de Java. Nombre del proyecto CalculatorWS_Client_Application. Crear un Main Class seleccionando todos los valores predeterminados. Haga clic en Finalizar.

2. Haga clic en el nodo CalculatorWS_Client_Application y seleccione Nuevo> cliente de servicios Web. El nuevo servicio Web Client se abre el asistente. 3. Seleccione Proyecto como la fuente de WSDL. Haga clic en Examinar. Busque

el servicio web CalculatorWS en el proyecto CalculatorWSApplication. Cuando haya seleccionado el servicio Web, haga clic en Aceptar.

(14)

4. No seleccione el nombre del paquete. Deje este campo vacío.

5. Deje los otros valores por defecto y haga clic en Finalizar.

La ventana muestra los proyectos del cliente de servicios web nueva, con un nodo para el método de extensión que ha creado:

6. Haga doble clic en la clase principal, de modo que se abre en el Editor de código fuente. Arrastre el nodo complemento por debajo del método main (). Ahora puede ver lo siguiente:

public static void main(String[] args) { // TODO code application logic here }

private static int add(int i, int j) {

org.me.calculator.CalculatorWS_Service service = new org.me.calculator.CalculatorWS_Service();

org.me.calculator.CalculatorWS port = service.getCalculatorWSPort(); return port.add(i, j);

(15)

Nota: Como alternativa, en lugar de arrastrar el nodo complemento, usted puede

hacer clic derecho en el editor de código y elija Insertar> Operación de llamadas de servicio web.

7. En el cuerpo del método main (), reemplace el comentario TODO con el código que inicializa los valores de i y j, llama a add (), e imprime el resultado. public static void main(String[] args) {

int i = 3; int j = 4;

int result = add(i, j);

System.out.println("Result = " + result); }

(16)

8. Rodea el código del método main () con un bloque try / catch que imprime una excepción.

public static void main(String[] args) { try {

int i = 3; int j = 4;

int result = add(i, j);

System.out.println("Result = " + result); } catch (Exception ex) {

System.out.println("Exception: " + ex); }

}

9. Haga clic derecho en el nodo del proyecto y seleccione Ejecutar. La ventana de resultados muestra ahora la suma:

compile: run: Result = 7

(17)

Cliente 2: Servlet en aplicaciones Web

En esta sección, se crea una nueva aplicación web, después de lo cual se crea un servlet. A continuación, utilizar el servlet para consumir el servicio Web que creó en el comienzo de este tutorial.

1. Elija Archivo> Nuevo Proyecto. Seleccione Aplicación Web de la categoría Web Java. Nombre de la CalculatorWSServletClient proyecto. Haga clic en Siguiente y luego haga clic en Finalizar.

2. Haga clic en el nodo CalculatorWSServletClient y seleccione Nuevo> cliente de servicios Web.

El nuevo servicio Web asistente de cliente aparece.

3. Seleccione Proyecto como la fuente de WSDL. Haga clic en Examinar. Busque el servicio web CalculatorWS en el proyecto CalculatorWSApplication. Cuando haya seleccionado el servicio Web, haga clic en Aceptar.

4. No seleccione el nombre del paquete. Deje este campo vacío. 5. Deje los otros valores por defecto y haga clic en Finalizar.

El Servicio de Referencias Web nodo en la ventana de proyectos muestra la estructura de su nuevo cliente, incluyendo la operación de adición que creó anteriormente en este tutorial:

(18)

6. Haga clic derecho en el nodo del proyecto CalculatorWSServletClient y elija Servlet Nuevo>. Nombre del servlet ClientServlet y lo coloca en un paquete llamado org.me.calculator.client. Haga clic en Finalizar.

7. Para hacer el servlet el punto de entrada a su solicitud, haga clic en el nodo del proyecto CalculatorWSServletClient y seleccione Propiedades. Abra las propiedades de Ejecutar y escriba / ClientServlet en el campo de dirección URL relativa. Haga clic en Aceptar.

8. Si no hay iconos de error para ClientServlet.java, haga clic en el nodo del proyecto y seleccione limpiar y construir.

(19)

9. En el Editor de código fuente, arrastre la operación de adición en cualquier parte del cuerpo de la clase ClientServlet. El método add () aparece en la parte final del código de la clase.

Nota: Como alternativa, en lugar de arrastrar el nodo complemento, usted puede

hacer clic derecho en el editor de código y elija Insertar> Operación de llamadas de servicio web.

private int add(int i, int j) {

org.me.calculator.CalculatorWS port = service.getCalculatorWSPort(); return port.add(i, j);

}

10. En el método ProcessRequest (), agregue algunas líneas en blanco después de esta línea:

(20)

11. Agregue el código que inicializa los valores de i y j, llama a add (), e imprime el resultado. El código agregado está en negrita:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

try { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet ClientServlet</title>"); out.println("</head>"); out.println("<body>");

out.println("<h1>Servlet ClientServlet at " + request.getContextPath () + "</h1>");

int i = 3;

int j = 4;

int result = add(i, j);

out.println("Result = " + result); out.println("</body>"); out.println("</html>"); } finally { out.close(); } }

(21)

12. Rodea el código agregado con un bloque try / catch que imprime una excepción.

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter();

try { out.println("<html>"); out.println("<head>"); out.println("<title>Servlet ClientServlet</title>"); out.println("</head>"); out.println("<body>");

out.println("<h1>Servlet ClientServlet at " + request.getContextPath () + "</h1>"); try {

int i = 3; int j = 4;

int result = add(i, j);

out.println("Result = " + result); } catch (Exception ex) {

out.println("Exception: " + ex); } out.println("</body>"); out.println("</html>"); } finally { out.close(); } }

(22)

El servidor se inicia, la aplicación está desarrollada y desplegada, y el navegador se abre y muestra el resultado del cálculo, como se muestra a continuación:

Cliente 3: Página JSP en aplicaciones Web

En esta sección, se crea una nueva aplicación web y luego consumir el servicio web en la página por defecto JSP que el asistente de aplicaciones Web crea.

Nota: Si desea ejecutar una aplicación cliente web de JSP en Oracle WebLogic,

consulte Ejecución de un Java Server Faces 2.0 Aplicación en WebLogic .

1. Elija Archivo> Nuevo Proyecto. Seleccione Aplicación Web de la categoría Web Java. Nombre del proyecto CalculatorWSJSPClient. Haga clic en Finalizar.

2. Haga clic en el nodo CalculatorWSJSPClient y seleccione Nuevo cliente de servicios Web>.

3. Seleccione Proyecto como la fuente de WSDL. Haga clic en Examinar. Busque el servicio web CalculatorWS en el proyecto CalculatorWSApplication. Cuando haya seleccionado el servicio Web, haga clic en Aceptar.

4. No seleccione el nombre del paquete. Deje este campo vacío.

5. Deje los otros valores por defecto y haga clic en Finalizar.

La ventana de proyectos muestra el cliente de servicio Web, como se muestra a continuación:

6. En el Servicio de Referencias Web nodo, expanda el nodo que representa el servicio web. La operación de adición, que se invoca desde el cliente, se encuentra expuesto.

(23)

7. Arrastre la operación de adición a la página index.jsp del cliente, y colóquelo debajo de las etiquetas H1. El código para invocar la operación del servicio se genera ahora en la página index.jsp, como se puede ver aquí:

<% try {

org.me.calculator.CalculatorWSService service = new org.me.calculator.CalculatorWSService();

org.me.calculator.CalculatorWS port = service.getCalculatorWSPort(); // TODO initialize WS operation arguments here

int i = 0; int j = 0;

// TODO process result here int result = port.add(i, j); out.println("Result = "+result); } catch (Exception ex) {

// TODO handle custom exceptions here }

(24)

8. Cambie el valor de i y j entre 0 y enteros, tales como 3 y 4. Remplace la línea

comentada TODO en el bloque catch con out.println ("excepción" + ex);.

Haga clic derecho en el nodo del proyecto y seleccione Ejecutar.

El servidor se inicia, si no se estaba ejecutando ya. La aplicación está desarrollada y desplegada, y el navegador se abre y muestra el resultado del cálculo:

Referencias

Documento similar

Por PEDRO A. EUROPEIZACIÓN DEL DERECHO PRIVADO. Re- laciones entre el Derecho privado y el ordenamiento comunitario. Ca- racterización del Derecho privado comunitario. A) Mecanismos

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,