1 Parte – Hessian: Un ejemplo de creación de un Web Services con Hessian en Java ejecutándolo con GlassFish
Java, Programación, Web Services 24 de enero del 2010
Hace mucho tiempo que había trabajado con Hessian, y la verdad es que me había gustado mucho:
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary protocol, it is well-suited to sending binary data without any need to extend the protocol with attachments.
Y recordando un poco por que se me olvida aquí les dejo un ejemplo de un Web Services con Hessian, es una de las maneras más fáciles de implementar un Web Services ya que es:
- Se puede implementar en muchisimos lenguajes como:
- Java
- Ruby
- Python
- PHP
- .NET C#
- y muchos más
- Nos olvidamos de definición de esquemas, SOAP, WSDL, CORBA IDL, etc
- Soporta cifrado, compresión (es indispensable para no saturar el Ancho de Banda), autenticación, etc.
- Es muy sencillo de implementarlo, y más
Este es un ejemplo muy pero muy básico, así que lo que quisimos hacer es obtener la lista de usuarios x.
Para crear el Servidor lo primero que hay que hacer es:
1.- Necesitamos crear un Proyecto Web, el cual sera el servidor que va estar escuchando todas las peticiones. (en mi caso utilice NetBeans)
2.- Después creamos nuestras clases (yo quiero regresar una lista con usuarios de tipo User que tiene como atributo userId, name, lasname, email)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
package com.serunix.bean;
/**
*
* @author serunix.com
*/
public class User implements java.io.Serializable {
private int userId;
private String name;
private String lasName;
private String email;
/**
* @return the userId
*/
public int getUserId() {
return userId;
}
/**
* @param userId the userId to set
*/
public void setUserId(int userId) {
this.userId = userId;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the lasName
*/
public String getLasName() {
return lasName;
}
/**
* @param lasName the lasName to set
*/
public void setLasName(String lasName) {
this.lasName = lasName;
}
/**
* @return the email
*/
public String getEmail() {
return email;
}
/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}
} |
3.- Creamos nuestros métodos disponibles
1 2 3 4 5 6 7 8 9 10 11 12 13 |
package com.serunix.services;
import java.util.List;
/**
*
* @author serunix.com
*/
public interface UserServices {
List ObtainListUsers();
} |
4.- Creamos la implementación, la cual tendrá toda la lógica
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package com.serunix.services.impl;
import com.caucho.hessian.server.HessianServlet;
import com.serunix.bean.User;
import com.serunix.services.UserServices;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author serunix.com
*/
public class UserServicesImpl extends HessianServlet implements UserServices {
public List ObtainListUsers() {
List list = new ArrayList();
User users = new User();
users.setUserId(1);
users.setName("sergio");
users.setLasName("Salazar");
users.setEmail("admin@serunix.com");
list.add(users);
users = new User();
users.setUserId(1);
users.setName("sergio2");
users.setLasName("López2");
users.setEmail("admin@serunix.com");
list.add(users);
return list;
}
} |
5.- Y por último modificamos nuestro web.xml y levantamos el server que en este caso estoy utilizando GlassFish
1 2 3 4 5 6 7 8 | <servlet> <servlet-name>UserServicesImpl</servlet-name> <servlet-class>com.serunix.services.impl.UserServicesImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServicesImpl</servlet-name> <url-pattern>/UserServicesImpl</url-pattern> </servlet-mapping> |
6.- Y creamos nuestro cliente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package test.serunix;
import com.caucho.hessian.client.HessianProxyFactory;
import com.serunix.bean.User;
import com.serunix.services.UserServices;
import java.net.MalformedURLException;
import java.util.Iterator;
import java.util.List;
/**
*
* @author sergio
*/
public class testHessian {
public static void main(String[] args) throws MalformedURLException, ClassNotFoundException {
String url = "http://localhost:8080/EJEMPLOHESSIAN/UserServicesImpl";
HessianProxyFactory factory = new HessianProxyFactory();
UserServices userservices = (UserServices) factory.create(url);
List users = userservices.ObtainListUsers();
Iterator ite = users.iterator();
while (ite.hasNext()) {
User user = (User) ite.next();
System.out.print("******************* \n");
System.out.print("Name: " + user.getName() + " \n");
System.out.print("LasName: " + user.getLasName() + " \n");
System.out.print("Email: " + user.getEmail() + " \n");
}
}
} |
7.- Y listo!!!!
La verdad es que es muy fácil, aquí les dejo el proyecto entero. Si me quieren dejar un feedback no duden en hacerlo.



Sobre mí








