Desarrollo de un servicio web para el envío de correos utilizando C# y su correspondiente cliente consumidor utilizando Java



Documentos relacionados
Práctica: Creación de un programa C# sencillo

Universidad ORT - Arquitectura de Software. Requisitos

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches

Guía de Instalación Proscai

Admincontrol Descarga e instalación

Tutorial 4. Aplicaciones Web con NetBeans 5.0

1. Posicionarse en la vista Services y seleccionar el ítem Servers. En el menú contextual del Mouse seleccionar la opción Add Server

Carrera: Analista de Sistemas. Asignatura: Resolución de Problemas y Algoritmos

RUEDA TORRES DULCE CAROLINA 3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados

MANUAL DE USUARIO DE CUENTAS DE CORREO

Visor de presupuestos en Android

Visual Studio Team System 2010

1. El entorno de desarrollo Eclipse

Introducción a Visual Studio.Net

WEB SERVICES CREACIÓN DEL SERVICIO

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Manual de NetBeans y XAMPP

Outlook Connector Manual

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Agentes con Interfaz Gráfica.

Intellikon 2.2. Código de Manual: Ik22002ESP Versión del Manual: 1.0 Última revisión: 20/12/2005 Se aplica a: Intellikon 2.2.

GstarCAD8. Guía de Instalación y Activación

MANUAL SISTEMA ENCRIPTACIÓN DE HECHOS RESERVADOS

Instalación del Admin CFDI

Desarrollo de Servicios Web con JBuilder

Manual de configuración de Adobe Reader para la validación de la firma de un documento.

Universidad ORT - Arquitecturas de Software sobre plataforma JEE Web Services (parte 1)

Clase Práctica Nº 1 ED 2015

Web Services. Visual Basic 2005 Ejemplo de Web Services. Alumnos Colaboradores: Rosario Avendaño Mirta Frias Laura Langer

Acerca de los métodos de inscripción de grupos. Cómo crear un único grupo

Acronis License Server. Guía del usuario

SISTEMA DE APARTADO DE SALAS PARA EVENTOS

.NET Framework 3.5 Visual Studio Express 2008 Tabla 1 Requerimientos de Software

Manual de uso de la Consola de Administración para usuarios Administradores.

CREACIÓN DEL PRIMER PROYECTO EN mikrobasic PRO for AVR

MANUAL DE INSTALACIÓN PLATAFORMA PROGRESA AUTOR: ASAC COMUNICACIONES DEPARTAMENTO DE DESARROLLO NOVIEMBRE DE 2007

Manual de Instalación

Creación un instalador con Visual Studio.NET. Irene Sobrón. Ingeniero de Telecomunicaciones por la Escuela Técnica Superior de Bilbao

Copias de Seguridad Automáticas para aplicaciones Productor.


1. Para iniciar la instalación, haga doble clic en sqlexpr.exe.

Acronis Backup & Recovery 11 Guía de inicio rápido

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

CONFIGURACIÓN PARA CORREO ELECTRÓNICO SEGURO CON MOZILLA

Uso de Firma Digital en la Oficina Virtual del Consejo de Seguridad Nuclear

PowerPoint 2010 Hipervínculos y configuración de acciones

Servicio de VPN de la Universidad de Salamanca

Capitulo 5. Implementación del sistema MDM

Manual de Usuario de la Herramienta SICRES-Tester. SIR Sistema de Interconexión de Registros. Tipo de documento. Fecha de entrega 08/04/2014

Cómo crear un fichero de ayuda para tus aplicaciones?

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Figura1. La IDE de MVS Express 2012

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

BIENVENIDO A LA GUÍA DEL USUARIO DE DHL WEB SHIPPING

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

CORREO ALUMNOS EUDORA IMAP

RSLOGIX 500 (MANEJO BASICO)

Portal Del Emisor MANUAL DEL USUARIO. Plataforma de Facturación Electrónica

Inducción al Laboratorio de Informática

SOROLLA MODULO DE JUSTIFICANTES DEL GASTO

Práctica de laboratorio Realización de análisis de vulnerabilidad

Fiery Driver Configurator

CONFIGURACION CLIENTE WEB Internet Explorer 7.0, 8.0, 9.0, 10.0, 11.0

Departamento Nacional de Planeación República de Colombia

Sistema de Captura Electrónica

MANUAL DE USUARIO DESKTOP

Certificados Digitales Tributarios. Guía de Instalación En Estaciones de Trabajo Microsoft Internet Explorer Versión 1.3s

Microsoft Access proporciona dos métodos para crear una Base de datos.

Manual de usuario Software PC Editor de Rutas. inled

HERRAMIENTA DE COMPRESIÓN Y CIFRADO

Tutorial. Configuración del entorno de programación Code::Blocks.

Ayuda de Symantec pcanywhere Web Remote

Sistemas Distribuidos (IS18) Ciclo Guía para generar BPEL y CASA

Instalación del Software Magaya

Título: Configuración de BDE en MS Windows Vista y Windows 7 José Sanchis jsanchis@spl-ssi.com SPL Sistemas de Información Afecta a: Istas21 1.

CARTILLA PARA EL USO DEL SISTEMA DE GENERACIÓN DE CERTIFICADOS DE HOMOLOGACIÓN PARA LA VENTA DE EQUIPOS TERMINALES MÓVILES. Versión 1.

Quieres diseñar una página web y no sabes por dónde empezar? Puedes decantarte por utilizar Visual Web Developer.

Un poco de culturilla...1 Crear un servicio Web...1 Usar servicios web...6

Tobii Communicator 4. Introducción

Guía de instalación de Citrix EdgeSight for Load Testing. Citrix EdgeSight for Load Testing 3.6

Boleta Digital 2010 Manual de Usuario

Manual de iniciación a

Microsoft Dynamics. Migración de FRx 6.7 a Management Reporter for Microsoft Dynamics ERP

Guía del firmante de SAP DocuSign

INSTRUCCIONES BREVES DE TecLocal

Acronis Backup & Recovery 10 Advanced Editions. Guía rápida de inicio

Configuración de ordenadores portátiles en la red de la Biblioteca con el sistema Windows 7

IBM SPSS Statistics Versión 22. Instrucciones de instalación para Windows (Licencia de usuario autorizado)

Patterns & Practices. Patrón AutoComplete. Versión: 1.0. Fecha de publicación Aplica a: Q-flow 3.1

CORREO PERSONAL EUDORA POP3

1. El entorno de desarrollo Eclipse

MANUAL DE USUARIO DE CUENTAS DE CORREO

Características. WinCDEmu.

MANUAL TARIFICADOR. Clic aquí Descargar Tarificador

1. Configuración del entorno de usuario

MANUAL DE USUARIO PANEL DE CONTROL Sistema para Administración del Portal Web.

Copyright. INSTRUCTIVO DE CONFIGURACIÓN DE PC s DE CLIENTES CASH MANAGEMENT

Transcripción:

Desarrollo de un servicio web para el envío de correos utilizando C# y su correspondiente cliente consumidor utilizando Java Versión 0.1 Jorge Iván Meza Martínez http://www.jorgeivanmeza.com/ <jimezam@gmail.com> 2008 http://www.jorgeivanmeza.com/ - 1

Introducción Este documento describe como desarrollar un servicio web muy simple para el envío de correos electrónicos en el lenguaje de programación C# utilizando la herramientas de programación gratuita Visual Web Development Express en su versión 2008. De igual manera se describe como desarrollar un cliente que consuma este servicio web en el lenguaje de programación Java utilizando la herramienta de programación gratuita NetBeans en su versión 6,0,1. El desarrollo de este software tiene fines académicos únicamente y no se espera que supla algún tipo de necesidad o que sea útil para ser utilizado en servidores en producción. No se toman ningún tipo de medidas de seguridad ni se contempla la utilización de servidores SMTP que requieran autenticación. Desarrollo del servicio web utlizando C#. Para el desarrollo del servicio web se utilizará Visual Web Developer Express en su versión 2008 el cual puede ser descargado gratuitamente de la siguiente dirección. http://www.microsoft.com/express/ Se inicia el ambiente de desarrollo haciendo click sobre su correspondiente ícono en el escritorio, el cual se puede encontrar también a través del Menú de Inicio > Todos los programas > Microsoft Visual Web Developer 2008 Express. Se inicia un nuevo proyecto seleccionando el menú File > New Website o de manera alternativa presionando las teclas Mayúsculas+Alt+N. http://www.jorgeivanmeza.com/ - 2

Se especifican las siguientes opciones en el díalogo de creación de sitios web. Template: ASP.NET Web Service. Location: File System = G:\Proyectos\WS_Taller\servicio. Language: Visual C#. Presione el botón OK para aceptar los valores anteriores. Téngase en cuenta que con los valores anteriores los archivos del proyecto se van a crear en la ruta especificada y utilizando el lenguaje de programación C#.NET. Personalice estas opciones según sus requerimientos. http://www.jorgeivanmeza.com/ - 3

En el Solution Explorer abra el archivo Service.asmx haciendo doble click izquierdo sobre él o haciendo click derecho sobre él y eligiendo la opción Open. Modifique el valor Class a MailService el cual es el servicio web que estamos implementando. <%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="MailService" %> Repita el proceso anterior abriendo ahora el archivo Service.cs que se encuentar bajo la rama App_Code del Solution Explorer. Realice las siguientes modificaciones al código. Agregue una referencia al namespace Net.Mail al comienzo del código. using System.Net.Mail; Modifique el nombre de la clase y del constructor a MailService. //... public class MailService : System.Web.Services.WebService public MailService () //... Agregue la implementación del método send como web service para enviar el correo electrónico con el siguiente contenido. [WebMethod] public string send(string fromuser, string touser, string subject, string body, string smtpserver) // Indica el mensaje que se le va a retornar al usuario al final de la // operación. "OK" significa que el envío del mensaje fue exitoso. string response = "OK"; http://www.jorgeivanmeza.com/ - 4

// Se crea el objeto para el envío de correos electrónicos indicándole // la dirección del servidor SMTP a utilizarse. SmtpClient client = new SmtpClient(smtpServer); // Se especifica la dirección del remitente del mensaje. MailAddress from = new MailAddress(fromUser); // Se especifica la dirección del receptor del mensaje. MailAddress to = new MailAddress(toUser); // Se especifica el contenido del mensaje. MailMessage message = new MailMessage(from, to); message.body = body + Environment.NewLine + Environment.NewLine; message.body += "Mensaje enviado utilizando el servicio web MailService."; message.bodyencoding = System.Text.Encoding.UTF8; // Se especifica el tema del mensaje. message.subject = subject; message.subjectencoding = System.Text.Encoding.UTF8; // Se realiza el envío el mensaje creado anteriormente. try client.send(message); catch (SmtpException smtpe) // En caso de suceder problemas enviando el mensaje, la descripción del // problema sucedido es enviada al cliente que consumió el servicio. response = smtpe.message; // Se realiza la limpieza de los recursos. message.dispose(); // Se retorna el mensaje de respuesta: "OK" o el mensaje de error sucedido. return response; Para probar el servicio desde el Visual Web Developer Express utlice las opciones Start Debugging o Start Without Debugging bajo el menú Debug para iniciar el servicio con o sin información de depuración respectivamente. Opcionalmente es posible utilizar las combinaciones de teclas F5 o Ctrl+F5 para realizar las mismas acciones. Es posible ejecutar el ASP.NET Development Server desde la línea de comando obviando la necesidad de tener abierto el Visual Web Developer Express, para esto ejecute los siguientes comandos en una ventana de Símbolo del sistema. prompt> set DEVSRV=C:\Program Files\Common Files\microsoft shared\devserver\9.0\ http://www.jorgeivanmeza.com/ - 5

prompt> "%DEVSRV%"\webdev.webserver.exe /path:"g:\proyectos\ws_taller\servicio" /vpath:/mailservice La ubicación del programa webdev.webserver.exe puede variar según la versión del.net Framework que se tenga instalada. Para consultar el documento WSDL 1 relacionado haga click en el enlace descripción de servicios, para probar el servicio web haga click sobre el servicio send. Especifique valores para los siguientes parámetros y presione el botón Invocar para probar el servicio web. 1 Web Services Description Language - http://en.wikipedia.org/wiki/web_services_description_language http://www.jorgeivanmeza.com/ - 6

fromuser dirección del usuario remitente. touser dirección del usuario receptor. subject tema del mensaje. body cuerpo del mensaje. smtpserver dirección IP del servidor SMTP que se va a utlizar. Nótese como estas variables coinciden con los parámetros de la función send implementada. Si el envío del mensaje es exitoso deberá obtenerse la respuesta de éxito: OK, tal y como se muestra en la siguiente imagen. En caso de suceder un error se deberá obtener como respuesta una descripción de este, de manera similar a la mostrada en la siguiente imagen. Para detener el servicio web que se está probando haga click derecho sobre el icono del ASP.NET Development Server y elija la opción Stop tal y como se muestra a continuación. Desarrollo del cliente del servicio web utlizando Java. http://www.jorgeivanmeza.com/ - 7

Para el desarrollo del cliente se utilizará NetBeans en su versión 6,0,1 el cual puede ser descargado gratuitamente de la siguiente dirección. http://www.netbeans.org/ Se inicia el ambiente de desarrollo haciendo click sobre su correspondiente ícono en el escritorio, el cual se puede encontrar también a través del Menú de Inicio > Todos los programas > NetBeans > NetBeans IDE 6,0,1. Cree un nuevo proyecto seleccionando el menú File > New Project o presionando la combinación de teclas Mayúsculas+Ctrl+N. Seleccione una aplicación Java de escritorio: Java > Java Desktop Application. Next para continuar. Presione el botón http://www.jorgeivanmeza.com/ - 8

Especifique las siguientes opciones del proyecto. Project Name: cliente Project Location: G:\Proyectos\WS_Taller Tenga en cuenta que deberá personalizar la variable Project Location según sus propios http://www.jorgeivanmeza.com/ - 9

requerimientos. Presione el botón Finish para aceptar la creación del proyecto con la información anterior. Agregue la referencia del servicio web al proyecto haciendo click derecho sobre el proyecto cliente y seleccionando los menúes New > Web Service Client... Realice la especificación de los siguientes valores necesarios. Seleccione la opción WSDL URL. Especifique la ubicación del servicio web: http://localhost/mailservice/service.asmx. Package: cliente http://www.jorgeivanmeza.com/ - 10

Tenga en cuenta que debe adaptar el valor del campo WSDL URL según su propia ubicación del servicio. Presione el botón Finish para continuar. Para confirmar que este paso se realizó exitosamente en el área del proyecto, bajo la rama Web Service References deberá aparecer el servicio recién referenciado: Service.asmx. Agregue la librería JAX-WS al proyecto, para esto haga click derecho sobre la rama Libraries de la sección de Projects y elija la opción Add Library... http://www.jorgeivanmeza.com/ - 11

Seleccione la librería JAX-WS 2,1 y presione el botón Add Library para aceptar. Edite el archivo ClienteView.java ubicado en la sección de Projects bajo el proyecto cliente en las ramas Source Packages > cliente. Utilice el modo Design (diseño) para editar gráficamente los componentes de la ventana. Agregue los componentes necesarios para crear una interfaz de usuario como la mostrada a continuación. http://www.jorgeivanmeza.com/ - 12

Los nombres especificados en la imagen son los nombres de los objetos JtextField. Para asignarlos seleccione el componente y en la sección de Properties modifique su valor en el campo Variable Name. http://www.jorgeivanmeza.com/ - 13

Cree los métodos get (obtener) para examinar los atributos de los JTextFIeld recién creados: servicio web, servidor SMTP, de, para, tema y mensaje. Para esto abra el archivo ClienteView.java ubicado en el árbol de proyectos bajo la rama Source Packages > cliente y elija el modo Source. En la vista del código elija el menú Refactor > Encapsulate Fields... y seleccione la casilla de verificación de Create Getter (primera columna) para los atributos tde, tmensaje, tservicioweb, tservidorsmtp y ttema tal y como se muestra en la siguiente imagen. Presione el botón Refactor para continuar. Modifique los métodos recién creados adaptándolos de la siguiente manera. public String gettde() return tde.gettext(); public String gettmensaje() return tmensaje.gettext(); public String gettpara() return tpara.gettext(); http://www.jorgeivanmeza.com/ - 14

public String gettservicioweb() return tservicioweb.gettext(); public String gettservidorsmtp() return tservidorsmtp.gettext(); public String getttema() return ttema.gettext(); Cree el método mostrarrespuesta el cual estará encargado de mostrar el resultado, en éxito o fracaso del llamado al servicio web, el cual retorna una cadena de texto con el mensaje OK en éxito o un mensaje de error en fracaso. public void mostrarrespuesta(boolean exito, String respuesta) String mensaje = ((exito)? "Exito enviando el mensaje:" : "Fracaso enviando el mensaje:") + "\n\n" + respuesta; JOptionPane.showMessageDialog(this.getFrame(), mensaje); Vuelva al modo Design del archivo ClienteView.java para asociar las acciones que se ejecutarán al presionarse los botones de Enviar y Cancelar, para ello de click derecho sobre el botón Cancelar y elija la opción Set Action... del menú contextual. http://www.jorgeivanmeza.com/ - 15

Modifique los campos del diálogo emergente de la siguiente manera y presione el botón Ok para continuar. Action: Create New Action... Action's Class: Application.ClienteApp Action's Method: terminarsesion Attributes: Text: Cancelar Tool Tip: Cancelar envío El IDE abre automáticamente el archivo ClienteApp.java y agrega el método terminarsesion. Modifique su implementación tal y como se muestra a continuación. http://www.jorgeivanmeza.com/ - 16

@Action public void terminarsesion() this.exit(); Repita los mismos pasos ahora con el botón Enviar para modificar su comportamiento. De vuelta al modo Design del archivo ClienteView.java haga click derecho sobre el botón Enviar y seleccione la opción Set Action... del menú contextual. Modifique los campos del diálogo emergente de la siguiente manera y presione el botón Ok para continuar. Action: Create New Action... Action's Class: Application.ClienteApp Action's Method: enviarmensaje Attributes: Text: Enviar Tool Tip: Enviar el mensaje http://www.jorgeivanmeza.com/ - 17

El IDE abre automáticamente el archivo ClienteApp.java y agrega el método enviarmensaje. Modifique su implementación tal y como se muestra a continuación. @Action public void enviarmensaje() // Obtiene la información proporcionada por el usuario a través // del ClienteView. String wsservice = ((ClienteView)this.getMainView()).getTServicioWeb(); String smtpserver = ((ClienteView)this.getMainView()).getTServidorSMTP(); String fromuser = ((ClienteView)this.getMainView()).getTDe(); String touser = ((ClienteView)this.getMainView()).getTPara(); String subject = ((ClienteView)this.getMainView()).getTTema(); String body = ((ClienteView)this.getMainView()).getTMensaje(); // Determina si hubo o no éxito en el proceso del envío del mensaje boolean exito = false; // Almacena la respuesta que va a ser mostrada al cliente. String respuesta = "desconocido"; try // Crea la referencia al servicio web. El primer parámetro es el // URL donde se encuentra ubicado y el segundo es el nombre del // servicio que se va a invocar. cliente.mailservice service = new cliente.mailservice(new URL(wsService + "?WSDL"), new QName("http://tempuri.org/", "MailService")); cliente.mailservicesoap port = service.getmailservicesoap(); // Se realiza la solicitud de ejecución del método publicado en el // servicio web. respuesta = port.send(fromuser, touser, subject, body, smtpserver); // Como todo salió bien así se indica en la variable de éxito. if (respuesta.equals("ok")) exito = true; catch (Exception ex) // Si sucede un problema, se almacena la cadena que lo describe // para mostrársela al usuario posteriormente. respuesta = ex.getlocalizedmessage(); // Se modifica la variable de éxito para representar el fracaso. exito = false; // Se muestra la respuesta obtenida durante el llamado al servicio // web al usuario final. ((ClienteView)this.getMainView()).mostrarRespuesta(exito, respuesta); http://www.jorgeivanmeza.com/ - 18

Ejecutar el cliente y probar la aplicación. Desde NetBeans presione el botón de Run Main Project (triángulo verde) o presione la tecla F6. Esto deberá compilar y ejecutar la aplicación si no se encontraron errores. Especifique los campos de la aplicación con los correspondientes a su entorno y presione el botón Enviar para enviar un mensaje de prueba. Si el mensaje es enviado exitosamente se obtendrá el siguiente mensaje. http://www.jorgeivanmeza.com/ - 19

En caso de producirse un problema se obtendrá un mensaje como el siguiente con la descripción del mismo. http://www.jorgeivanmeza.com/ - 20