NovaSuite
Guía Técnica de Desarrollo
Spring Framework
Versión 1.0
www.novasistemas.com.mx
Contenido
Control de Versiones........................................................................................................... 3
1 Conceptos básicos........................................................................................................ 4
1.1 Spring Framework............................................................................................................... 4
1.1.1 ¿Qué es Spring Framework?...................................................................................................... 4
1.1.2 Características clave de Spring Framework...............................................................................4
1.1.3 Módulos Principales de Spring Framework.................................................................................5
1.2 SOAP Web Service.............................................................................................................. 5
1.2.1 Características Clave de SOAP Web Services............................................................................5
1.2.2 Estructura de un Mensaje SOAP.................................................................................................6
1.2.3 ¿Cómo Funciona un SOAP Web Service?....................................................................................6
2 Desarrollo de SOAP Web Service en Spring..................................................................6
Componentes de ExtJs 2
Control de Versiones
Fecha Versión Descripción Autor
Marzo 2025 1.0 Creación del Documento Michell Alejandro López
Sierra
3 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
1 Conceptos básicos
1.1 Spring Framework
Spring Framework es un marco de desarrollo para aplicaciones en Java que
proporciona una infraestructura integral para el desarrollo de aplicaciones
empresariales. Es ampliamente utilizado en la industria debido a su flexibilidad,
modularidad y capacidad para simplificar el desarrollo de aplicaciones Java, desde
aplicaciones monolíticas hasta microservicios.
1.1.1 ¿Qué es Spring Framework?
Spring es un conjunto de herramientas y bibliotecas que facilita la creación de
aplicaciones Java de manera estructurada, modular y eficiente. Proporciona
soluciones para diversas áreas del desarrollo, como la inyección de dependencias, la
gestión de transacciones, la seguridad, la integración con bases de datos y el
desarrollo de APIs RESTful.
1.1.2 Características clave de Spring Framework
Spring se destaca por varias características clave que lo han convertido en uno de los
frameworks más populares para el desarrollo en Java:
Inversión de Control (IoC) e Inyección de Dependencias (DI): Permite desacoplar
componentes de la aplicación mediante la gestión automática de dependencias.
Programación Orientada a Aspectos (AOP): Facilita la separación de
preocupaciones como el manejo de seguridad, logging y transacciones.
Acceso a Datos Simplificado: Proporciona integración con JDBC, JPA,
Hibernate y otros frameworks de persistencia.
Desarrollo de Aplicaciones Web y RESTful: Incluye Spring MVC para el
desarrollo de aplicaciones web y Spring WebFlux para aplicaciones reactivas.
Seguridad Integrada: Spring Security permite implementar autenticación y
autorización de manera flexible.
Compatibilidad con Microservicios: La integración con Spring Boot facilita
el desarrollo de aplicaciones basadas en microservicios con configuración
mínima.
Integración con Mensajería y Servicios en la Nube: Permite integración
con Kafka, RabbitMQ y servicios en la nube como AWS o Google Cloud.
Componentes de ExtJs 4
1.1.3 Módulos Principales de Spring Framework
Spring está compuesto por varios módulos que se pueden usar de manera
independiente o combinada:
Spring Core: Incluye el contenedor de IoC y la base de la configuración de
Spring.
Spring AOP: Permite la implementación de aspectos como logging y
seguridad.
Spring Data: Proporciona acceso simplificado a bases de datos mediante JPA,
MongoDB, Redis, etc.
Spring MVC: Framework para aplicaciones web basado en el patrón MVC.
Spring Security: Proporciona autenticación y autorización para aplicaciones.
Spring Boot: Simplifica la configuración y el desarrollo de aplicaciones
Spring.
Spring Cloud: Conjunto de herramientas para desarrollar aplicaciones
basadas en microservicios.
Spring WebFlux: Framework para el desarrollo de aplicaciones reactivas.
1.2 SOAP Web Service
Un SOAP Web Service (Simple Object Access Protocol Web Service) es un tipo de servicio web
que permite la comunicación entre sistemas a través de la web utilizando el protocolo SOAP.
SOAP es un protocolo basado en XML que define reglas estrictas para el intercambio de mensajes
entre aplicaciones, independientemente del lenguaje de programación o la plataforma en la que
estén desarrolladas.
1.2.1 Características Clave de SOAP Web Services
Basado en XML: Todos los mensajes SOAP se estructuran en XML, lo que los hace legibles
y altamente interoperables.
Protocolos de Transporte: Aunque SOAP se diseñó originalmente para usarse con HTTP
y HTTPS, también puede funcionar con otros protocolos como SMTP y JMS.
WSDL (Web Services Description Language): Un archivo en XML que describe el
servicio web, sus métodos, tipos de datos y cómo interactuar con él.
Independencia de Plataforma y Lenguaje: Permite la comunicación entre sistemas
desarrollados en diferentes lenguajes de programación como Java, C#, Python, etc.
Seguridad: SOAP soporta estándares de seguridad como WS-Security, que permite
encriptación y autenticación en los mensajes.
Soporte para Transacciones y Estado: A diferencia de REST, SOAP permite el manejo
de transacciones y servicios con estado.
5 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
1.2.2 Estructura de un Mensaje SOAP
Un mensaje SOAP es un documento XML que contiene los siguientes elementos:
Imagen 1 Estructura SOAP
Envelope: Es el contenedor principal del mensaje SOAP.
Header (opcional): Puede contener información como seguridad, autenticación,
enrutamiento, etc.
Body: Contiene los datos de la solicitud o respuesta.
1.2.3 ¿Cómo Funciona un SOAP Web Service?
1. Cliente envía una solicitud en formato SOAP (XML) al servidor a través de HTTP/HTTPS.
2. El servidor procesa la solicitud y ejecuta la operación solicitada.
3. El servidor responde con un mensaje SOAP que contiene los datos solicitados o un error.
Imagen 2 Ejemplo de respuesta SOAP
Componentes de ExtJs 6
2 Desarrollo de SOAP Web Service en Spring
1. Abrir Eclipse IDE y crear nuevo proyecto Maven.
Imagen 3 Proyecto Maven
2. Habilitar las opciones que se muestran a continuación
Imagen 4 New Maven Proyect
3. Como siguiente paso es necesario configurar el proyecto a crear, como punto importante
es necesario que la opción Packaging sea de tipo war tal y como se muestra en la
siguiente imagen.
Imagen 5 Configuración de proyecto
4. A continuación se creará el siguiente proyecto
Imagen 6 Package Explorer
Este es el POM.xml generado automáticamente. Deben agregarse todas las dependencias
necesarias según los requerimientos previamente establecidos.
7 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
Imagen 7 pom.xml
Para facilidad de consulta, el pom.xml completo será agregado como anexo en una última sección
de Anexos.
2.1 applicationContext.xml
Este archivo es un archivo de configuración XML de Spring Framework, que define la
configuración de beans, la inyección de dependencias y otros aspectos del contexto de la
aplicación.
Este archivo configura un entorno Spring basado en XML que:
Usa escaneo de componentes para detectar automáticamente beans.
Carga configuraciones desde archivos .properties.
Soporta AOP, inyección de dependencias, transacciones y otras funcionalidades.
Define el contexto de Spring para la aplicación en el paquete
mx.com.novasistemas.estructurabase.controller.
Suele definirse de la misma manera para cualquier proyecto. Se coloca en el dentro del directorio
del proyecto en src/main/webapp/META-INF/spring con el nombre de applicationContext.xml, su
estructura en la siguiente imagen.
Imagen 8 Ruta applicationContext.xml
Imagen 9 applicationContext.xml
Componentes de ExtJs 8
2.2 web.xml
Este archivo es un web.xml, el descriptor de despliegue para aplicaciones web en Jakarta EE
(anteriormente Java EE). Especifica la configuración de la aplicación web, incluyendo servlets,
listeners y parámetros de contexto. Se genera en el siguiente directorio.
Imagen 10 web.xml
2.2.1 Encabezado y definición de esquema
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://jakarta.ee/xml/ns/jakartaee"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" id="WebApp_ID" version="6.0">
Define que el archivo usa XML versión 1.0 y está codificado en UTF-8.
Especifica que sigue el esquema de Jakarta EE 6.0, lo cual indica que la aplicación está
diseñada para un servidor compatible con esta versión.
2.2.2 Nombre de la aplicación
<display-name>demoSoap.spring</display-name>
Establece el nombre de la aplicación como demoSoap.spring.
2.2.3 Archivos de bienvenida
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>/axis2-web/index.jsp</welcome-file>
</welcome-file-list>
Define las páginas de inicio que el servidor buscará cuando un usuario acceda sin
especificar un archivo en la URL.
Incluye HTML, JSP y archivos específicos de Apache Axis2 (/axis2-web/index.jsp)
9 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
2.2.4 Parámetros del contexto
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>META-INF/spring/applicationContext*.xml</param-value>
</context-param>
Define la ubicación de los archivos de configuración de Spring, específicamente
cualquier archivo applicationContext*.xml dentro de META-INF/spring/.
Esto permite que la aplicación cargue configuraciones de beans de Spring desde archivos
XML.
2.2.5 Listener para Spring
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</
listener-class>
</listener>
Registra ContextLoaderListener de Spring, lo que indica que la aplicación usará Spring
Framework y cargará su contexto en el momento en que la aplicación se inicie.
2.2.6 Definición de Servlets
2.2.6.1 Servlet BootStrap
<servlet>
<servlet-name>BootStrap</servlet-name>
<servlet-class>mx.com.novasistemas.estructurabase.controller.BootStrap</
servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
Define un servlet llamado BootStrap, que pertenece al paquete
mx.com.novasistemas.estructurabase.controller.
Este servlet realiza tareas de inicialización al arrancar la aplicación.
load-on-startup con valor 0 indica que se cargará en cuanto el servidor inicie.
2.2.6.2 Servlet para Web Services
servlet>
<servlet-name>services</servlet-name>
<servlet-
class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-
class>
<init-param>
<param-name>transformWsdlLocations</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
Define un servlet llamado services que usa MessageDispatcherServlet de Spring Web
Services.
transformWsdlLocations en true indica que el servlet ajustará las ubicaciones de los
archivos WSDL para asegurar su correcta exposición.
Componentes de ExtJs 10
2.3 services-servlet.xml
Este archivo es parte de una arquitectura basada en Spring-WS, donde se define la lógica de
negocio en un @Endpoint (controlador SOAP), y los mensajes se estructuran con base en un
esquema XSD.
Este archivo configura un servicio web SOAP en Spring Web Services, proporcionando
las siguientes características:
Escaneo automático de componentes en el paquete
mx.com.novasistemas.estructurabase.controller.
Habilitación de anotaciones para facilitar la implementación del servicio web.
Exposición dinámica de un WSDL, basado en un esquema XSD (Hola_Servicios.xsd).
Se muestra el directorio y la vista final de este archivo.
Imagen 11 Ruta services-servlet.xml
Imagen 12 services-servlet.xml
11 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
2.4 Archivo XSD
Este esquema de definición XML (XSD) describe varios elementos y tipos complejos que se utilizan
para las solicitudes y respuestas de servicios web relacionados con la descarga de información de
empresas y la búsqueda de información de tickets. A continuación, te explico las partes clave de
este esquema:
2.4.1 Funcionalidades Principales
El servicio permite realizar las siguientes operaciones:
Consulta de compañías disponibles
Búsqueda de tickets y facturas
Consulta de cuentas por cobrar
Generación de CFDIs a partir de tickets, facturas y cuentas por cobrar
Cada operación requiere el envío de una solicitud XML específica y recibe una respuesta
estructurada según el esquema XSD.
2.4.2Estructura del Servicio
El servicio está basado en una serie de elementos definidos en el esquema XML, los cuales
especifican los parámetros requeridos y la información devuelta en cada operación.
Solicitudes (Request): Contienen los datos necesarios para realizar una consulta o
generar un CFDI.
Respuestas (Response): Devuelven la información solicitada o el resultado de una
operación.
2.4.3 Formato de Solicitudes y Respuestas
Cada solicitud debe cumplir con la estructura definida en el esquema XSD para ser procesada
correctamente. La información se intercambia en formato XML, asegurando compatibilidad con
diversos sistemas de facturación electrónica.
2.4.4 Consideraciones Generales
Todas las solicitudes deben incluir los datos obligatorios especificados en el esquema XSD.
Las respuestas pueden contener mensajes de error en caso de datos inválidos o falta de
información.
Se recomienda validar los XML antes de enviarlos al servicio web para evitar rechazos.
A continuación se muestra una sección del archivo XSD.
Componentes de ExtJs 12
Imagen 13 Fragmento de archivo XSD
A continuación se genera un nuevo paquete el cual va a contener la clase que gestionará cada
uno de los endpoints declarados anteriormente en el XDS.
Imagen 14 HelloEndpoint.java
Cada uno de los elements declarados deberá poseer un método que recibirá el request y
devolverá el elemento declarado como response.
Imagen 15 Método Response
13 Guía Técnica de Desarrollo NovaSuite ÓÓ Confidencial
3 SOAP UI
SOAP UI es una herramienta de prueba de servicios web que permite probar protocolos SOAP y
REST. Fue creada para facilitar la validación y depuración de servicios web en diferentes entornos.
Imagen 16 Logo SoapUI
3.1 Características Principales de SOAP UI
SOAP UI ofrece una serie de características clave que lo hacen una herramienta robusta:
Soporte para SOAP y REST: Aunque comenzó como una herramienta exclusiva para
SOAP, con los años ha evolucionado para admitir pruebas RESTful.
Interfaz Gráfica Intuitiva: Permite probar servicios sin necesidad de escribir código,
simplemente configurando solicitudes y validaciones dentro de la interfaz.
Assertions para Validaciones: Permite agregar Assertions para verificar respuestas
automáticamente y detectar errores en las API.
Automatización de Pruebas: Con TestSuites y TestCases, permite ejecutar pruebas en
secuencia y automatizar validaciones.
Soporte para Scripts (Groovy y JavaScript): Para usuarios avanzados, SOAP UI permite
la personalización mediante scripts en Groovy o JavaScript.
Pruebas de Carga y Rendimiento: SOAP UI permite evaluar el rendimiento de una API
sometiéndola a múltiples solicitudes simultáneas.
Un archivo WSDL (Web Services Description Language) describe las operaciones que un
servicio ofrece y cómo se pueden invocar.
3.2 Proceso de prueba con Soap UI
Componentes de ExtJs 14