Generar servicios web SOAP (Java)
Este tema explica cómo generar un servicio web SOAP, que cubre los pasos 2-5 descritos en Configuración del servicio web SOAP e incluye los siguientes procedimientos:
1.Generar código (en este caso, Java) a partir de un proyecto de muestra de MapForce
2.Crear el código utilizando Apache Ant
3.Implementar el servicio en Apache Tomcat
4.Llamar al servicio web con Altova XMLSpy
Para más información sobre cada procedimiento, véase las subsecciones a continuación. El proyecto de servicio web que utilizaremos como ejemplo en este apartado se llama getAuthor.mfp. Hemos creado el proyecto en el apartado Crear proyecto de servicio web SOAP. Este proyecto y todos sus archivos asociados se encuentran en la carpeta Tutoriales.
Para simplificar, en el ejemplo se emplea una configuración de servidor web básica que no debe entenderse como preceptiva. En un entorno de producción es muy probable que el servidor web, las directivas de seguridad de la organización y otros factores exijan un enfoque distinto.
Para llamar al servicio web SOAP en este ejemplo se utiliza Altova XMLSpy Enterprise Edition. Si no tiene XMLSpy, necesitará un cliente SOAP para probar el servicio web o, si lo prefiere, deberá escribir código de programa que pueda llamar al servicio web. También puede probar el servicio web creando una llamada a servicios web en MapForce.
Descargar y desempaquetar Tomcat, Axis2 y Ant
Para poder seguir los pasos descritos a continuación, debe tener instalado las siguientes tecnologías:
•Java SE JDK 8, 11, 17, 21 (incluido OpenJDK)
•Apache Tomcat (un servidor web que aloja el servicio)
•Apache Axis2 (un marco de trabajo y motor de servicios web que facilita la creación, la implementación y el uso de servicios web; se ejecuta dentro de Tomcat)
•Apache Ant (una herramienta de línea de comandos que se usará para compilar el código)
Descargue Tomcat, Axis2 (la distribución binaria, por ejemplo axis2-1.8.2-bin.zip, y la distribución WAR, por ejemplo, axis2-1.8.2-war.zip) y Ant. Luego, desempaquete sus respectivos paquetes en un directorio local. En este ejemplo, utilizamos Tomcat 9.0.93, Axis2 1.8.2 y Ant 1.10.13.
Configure Tomcat, Axis2 y Ant
Una vez que haya desempaquetado y extraído Tomcat, Axis 2 y Ant, deberá configurar las siguientes variables de entorno:
•La variable de entorno ANT_HOME debe apuntar a la ubicación en la que está instalado Tomcat.
•La variable de entorno ANT_HOME debe apuntar al directorio en el que está instalado Ant.
•La variable de entorno JAVA_HOME debe apuntar al directorio en el que esté instalado Java JDK.
•La variable de entorno PATH debe incluir la ruta de acceso a %ANT_HOME%\bin.
•La variable de entorno AXIS2_HOME debe apuntar a la ubicación donde se guarda la distribución binaria de Axis2.
Asegúrese de establecer los derechos de acceso correctos para permitir que Tomcat interactúe con varios recursos locales, como directorios, bases de datos y archivos.
Integrar Axis2 con Tomcat
En este ejemplo, el servicio web se cargará en Tomcat desde la página de administración de Axis2. Para integrar Axis2 con Tomcat, siga estos pasos:
1.Copie el archivo axis2.war del paquete de distribución WAR Axis2 en el directorio %CATALINA_HOME%\webapps de Tomcat.
2.Iniciar Tomcat. Hay varias formas de iniciar Tomcat. Una de ellas es ejecutar este comando: %CATALINA_HOME%\bin\startup.bat (Windows) o %CATALINA_HOME%\bin\startup.sh (Linux y MacOS).
3.Compruebe si Tomcat se está ejecutando, accediendo a http://localhost:8080.
4.Compruebe si Axis2 se ha implementado correctamente abriendo esta página: http://localhost:8080/axis2.
Comprobar Ant
Para comprobar si Ant se está ejecutando, teclee ant en la línea de comandos. El mensaje Buildfile: build.xml does not exist significa que Ant está configurado y necesita un archivo de compilación. Para más información sobre la configuración de Ant, véase el manual del usuario de Ant.
Step 1: Generar código Java
El primer paso consiste en generar el código Java para el proyecto de servicio web. Para ello siga estos pasos:
1.Abra el proyecto getAuthor.mfp.
2.Haga clic con el botón derecho en la ventana Proyecto y seleccione Generar código en | Java. Por defecto, MapForce guarda el código generado en una nueva carpeta llamada output (salida) que está en la misma carpeta que el proyecto. Si quiere cambiar la configuración de salida, haga clic con el botón derecho en el proyecto en la ventana Proyecto y seleccione Propiedades en la ventana contextual.
Para más información sobre cómo genera código Java, consulte el apartado Generar código Java. Para obtener información mas detallada sobre cómo configurar el proyecto, consulte la sección Configuración del proyecto.
Step 2: Compilar el código
Como resultado de la generación de código, se han creado varios archivos nuevos, entre los cuales se encuentra el archivo build.xml. Este archivo se utiliza como un script de configuración que define cómo se debe construir el código fuente, lo que incluye estos componentes: compilación, pruebas, empaquetado, implementación y otras tareas.
Para compilar el código Java que acaba de crear en el paso anterior, ejecute Ant en la línea de comando en el mismo directorio que el archivo build.xml (imagen siguiente). Para este tutorial no tocaremos la configuración predeterminada. Si de todas formas quiere cambiar el directorio de salida, consulte el apartado Configuración del proyecto.
En cuanto se haya compilado el código Java, se creará en el directorio de salida un archivo Axis Archive (.aar) con el nombre predeterminado Mapping.aar. Un archivo .aar sirve para empaquetar todos los componentes necesarios de un servicio web en un único archivo, lo que facilita su implementación en Apache Axis2.
Recomendamos dar un nombre significativo al archivo para distinguirlo de otros archivos que puede haber cargado o piensa cargar en el servidor. En nuestro ejemplo, el nombre del archivo es getAuthor.aar.
Step 3: Implementar el servicio web en Tomcat
En este paso, nuestra tarea es implementar el archivo getAuthor.aar en Tomcat a través de la página de administración de Axis2. Para ello siga estos pasos:
1.Ejecute Tomcat.
2.Abra la página de administración (http://localhost:8080/axis2/axis-admin/upload) y cargue el archivo getAuthor.aar generado en el paso anterior. El nombre de usuario y la contraseña predeterminados para la página de administración suelen ser admin y axis2, respectivamente.
Ahora un nuevo servicio web llamado getAuthorService está disponible y activo en la página de administración Axis2 (imagen siguiente).
Step 4: Llamar al servicio web
El último paso consiste en llamar al servicio web. Para llamar al servicio web que acabamos de implementar, utilizaremos la edición Enterprise de Altova XMLSpy.
Usar el archivo de solicitud creado anteriormente
Si anteriormente ya ha creado un archivo de solicitud de muestra (en nuestro ejemplo es getAuthorRequest.xml descrito en Crear proyecto de servicio web), siga estos pasos:
1.Abra getAuthorRequest.xml en XMLSpy. El elemento de consulta Query tiene como valor Iceland. Es decir que el servidor debería devolver todos los autores islandeses y sus registros Book. Si quiere, también puede experimentar con el archivo de solicitud y establecer un valor diferente en el elemento Query (p. ej., Francia).
2.En el menú SOAP haga clic en Enviar solicitud al servidor.
3.En el cuadro de diálogo Configuración de la solicitud SOAP deje las opciones de configuración predeterminada como están y simplemente haga clic en Aceptar. XMLSpy iniciará la llamada y además se abrirá un mensaje de respuesta en un nuevo archivo XML que contiene todos los registros Author relevantes. Para más información sobre el mensaje de respuesta, consulte el apartado Crear proyectos de servicio web.
Crear un archivo de solicitud nuevo
Si quiere crear un archivo de solicitud nuevo en XMLSpy, siga las instrucciones a continuación:
1.Ejecute XMLSpy.
2.En el menú SOAP, haga clic en Crear solicitud SOAP nueva. Cuando el programa se lo pida, introduzca la ubicación del archivo WSDL (imagen siguiente).
3.Haga clic en Aceptar. Cuando XMLSpy le pida que seleccione una operación SOAP, elija getAuthor y confirme la selección.
4.En el elemento Query, indique el país que quiera (p. ej., Reino Unido).
5.Siga las instrucciones de los pasos 2-3 de la sección Usar el archivo de solicitud creado anteriormente.