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.



4 Comentarios en “1 Parte – Hessian: Un ejemplo de creación de un Web Services con Hessian en Java ejecutándolo con GlassFish”

  1. Bitacoras.com | 24/01/2010 a las 09:30:34

    Información Bitacoras.com…

    Valora en Bitacoras.com: 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 ano…..

  2. Integración de Hessian con Spring Framework | Blog de sergio | 26/01/2010 a las 16:53:33

    [...] se pueden saber las cosas que uno quiere… después de mucha lectura sobre como crear un Web Services con Hessian integrándolo con Spring púes he conseguido levantar el cliente y el servidor, pero me encontré [...]

  3. Crear un test con Junit para probar un Web Services... | Blog de sergio | 31/01/2010 a las 09:57:58

    [...] con el pequeño ejemplo de “1 Parte – Hessian: Un ejemplo de creación de un Web Services con Hessian en Java ejecutándolo co…” púes habíamos creado un test usando un main, pero ahora les dejo un ejemplo de test [...]

  4. Un Ejemplo de un proxi con AOP(Aspect) y Spring Framework | Blog de sergio | 14/02/2010 a las 20:07:07

    [...] utilizando Java 5: 1.- Estamos utilizando en este caso las clases que hicimos en otro ejemplo con Hessian. 2.- Aquí vamos a hacer que el Aspecto se comporte como un proxi (esto quiere decir que cada vez [...]

Dejar un comentario

http://www.wikio.es BlogESfera - Directorio de Blogs Hispanos blogarama - the blog directory Mi Ping en TotalPing.com
Internet blogs Programming Blogs - Blog Catalog Blog Directory Internet blogs Buzzear (ES) Publicidad por tu blog con Boosterblog directorio de blogs
Agregar Web - Directorio de webs Directorio webs Directorio Web