Spring WS: Servicios Web a través del correo electrónico

1
13011

Spring WS: Servicios Web a través del correo electrónico

Introducción.

En el siguiente tutorial vamos a construir un Servicio Web que atienda las peticiones a través del correo electrónico. Es decir, el servicio web
monitorizará una cuenta de correo para ver si tiene peticiones (un email con un mensaje SOAP en el cuerpo del mensaje), las procesará y enviará un correo electrónico con la respuesta al cliente que solicitó sus servicios.

En este tutorial no vamos a ver todo el proceso de construcción de clientes y servicios Web desde cero, simplemente vamos a ver
los cambios que tenemos que realizar (muy pocos :-)) para que funcione todo usando el cliente y el servicio web que ya construimos en tutoriales anteriores:.

  1. Spring WS: Creación de Servicios Web con Spring
  2. Spring WS: Construcción de Clientes de Servicios Web con Spring

De todas formas os dejo el código fuente (proyectos Eclipse, Maven) para que realices tus pruebas.

  1. Código fuente del servicio web.
  2. Código fuente del cliente.

¿Cambios a realizar en el servicio web?

Los cambios a realizar son a nivel de configuración de Spring y agregar alguna dependencia al archivo de configuración de Maven.

Cambios a realizar en el archivo de configuración de Spring 2 (/main/resources/applicationContext.xml):

Si comparas ambos archivos, verá que lo único que cambia es se añade el bean «messageReceiver» y se elimina el
bean «bibliotecaWS», el archivo está autocomentado:



	
	
	

	
	
    	
	

	
    
        
            
        
    

	
	 
	 	
	 		
	 			
	 			
	 		
	 	
	 	
	 	
	 	
	 	   
	 	       
	 	   
	 	
	 	
	 
	
	 
	 
	     
	     
	     
	 	
	
	
	
	  
	  
	    
	      SENDER,Invalid request
	      SENDER,Invalid request
	    
	  
	
	
  	
    
        
        
        
        
        
        
        
                
        
         
        
        

        
        
        
        

        
        
		    
		        
		            
        
        
        
        
            
            	
                
                
                
                
            
        
    


Cambios en el archivo de configuración de Maven pom.xml:

Si compara ambos archivos, verá que tiene que agregar 3 dependencias nuevas (spring-ws-support, mail, activation):


	4.0.0
	com.autentia.tutoriales
	bibliotecaEmailWS
	jar
	1.0-SNAPSHOT
	bibliotecaEmailWS
	http://www.adictosaltrabajo.com

	
	
		
			
				maven-compiler-plugin
				
					1.6
					1.6
					UTF-8
				
			

		
	

	
		
		
			org.springframework.ws
			spring-ws-core
			1.5.6
		

		
		
			org.springframework.ws
			spring-ws-support
			1.5.6
		
	
		
		
		  	javax.mail
  			mail
  			1.4
  		
           
             javax.activation  
             activation  
             1.1  
             		
  		
		
		
			junit
			junit
			4.3.1
			test
		
	



¿Cambios a realizar en el cliente?

Los cambios a realizar son a nivel de configuración de Spring y agregar alguna dependencia al archivo de configuración de Maven.

Cambios a realizar en el archivo de configuración de Spring 2 (/main/resources/applicationContext.xml):

Si compara ambos archivos, verá que lo único que cambia es el bean «messageSender», el archivo está autocomentado:



	
	
	
		
	
	
	
	
		
		
			  
			
			
        		
            		
        		
        				
				
		
        
            
            	
            	
            	
		        
		        
		        
		        
		        
		        
		        
		        
		        
		        
		        		        
            
        
        
        
        
        
	

Cambios en el archivo de configuración de Maven pom.xml:

Si compara ambos archivos, verá que tiene que agregar 3 dependencias nuevas (spring-ws-support, mail, activation):


  4.0.0
  com.autentia.tutoriales
  bibliotecaEmailWSCliente
  jar
  1.0-SNAPSHOT
  bibliotecaEmailWSCliente
	http://www.adictosaltrabajo.com
	
		
			
			
				maven-compiler-plugin
				
					1.5
					1.5
					UTF-8
				
			
		
	
	
			
		
			org.springframework.ws
			spring-ws-core
			1.5.6
		

		
		
			org.springframework.ws
			spring-ws-support
			1.5.6
		
		
		
		
		  	javax.mail
  			mail
  			1.4
  		
           
             javax.activation  
             activation  
             1.1  
             		
  		
		
		
		    log4j
		    log4j
		    1.2.14
		
		
		
		
			junit
			junit
			4.3.1
			test
		
	



Referencias

Conclusiones

A la hora de diseñar una arquitectura, conocer todas las alternativas disponibles es un tema muy importante, en este tutorial hemos expuesto
un modo de comunicación síncrono en donde un servicio web atiende las solicitudes a través de cuenta de correo, pero podíamos haberlo asíncrono e incluso
haber tenido N servicios distribuidos leyendo la misma cuenta de correo, haber usado colas JMS…

Elegir uno u otro modelo depende de las necesidades, restricciones, etc.. en Autentia impartimos constantemente cursos a medida sobre estas y otras tecnologías, espero nos tengáis en cuenta en caso de que necesitéis formación.

Otra cosa, recuerda que esto no es más que un tutorial, hay más puntos al respecto sobre los que profundizar.

Carlos García Pérez. Creador de MobileTest, un complemento educativo para los profesores y sus alumnos.

cgpcosmad@gmail.com

1 COMENTARIO

  1. Para acotar la búsqueda Necesita Servicio Transporte, se pueden usar las opciones:
    Necesita Servicio Transporte, Transporte y Servicio Clientes.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad