Primavera – Remoting por Hessian

Podemos usar las clases HessianServiceExporter y HessianProxyFactoryBean para implementar el servicio de comunicación remota hessian. La principal ventaja de Hessian es que Hessian funciona bien en ambos lados de un firewall. Hessian es un lenguaje portátil que se puede usar con otros lenguajes como PHP y .Net.

Implementación: para hacer una aplicación de arpillera simple, deberá crear los siguientes archivos:

  1. Cálculo.java
  2. CalculationImpl.java
  3. web.xml
  4. hessian-servlet.xml
  5. cliente-beans.xml
  6. Cliente.java

La estructura del proyecto queda de la siguiente manera: 

A. Archivo: Cálculo.java

Java

// Java Program to illustrate Simple Interface
// Containing one method cube.
  
package com.geeksforgeeks;
  
// Interface
public interface Calculation {
    
    int cube(int number);
}

B. Archivo: CalculationImpl.java

Java

// Java Program to Illustrate Implementation
// of the Calculation interface
  
package com.geeksforgeeks;
  
// Class
// Implementing interface
public class CalculationImpl implements Calculation {
    
    // Method
    public int cube(int number)
    {
        // Returning cube of a number
        return number * number * number;
    }
}

C. Archivo: web.xml

El controlador frontal se define en este archivo XML denominado DispatcherServlet. Cualquier solicitud que termine en .http se enrutará a DispatcherServlet.

XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app> 
<servlet>
    <servlet-name>hessian</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
  
<servlet-mapping>
    <servlet-name>hessian</servlet-name>
    <url-pattern>*.http</url-pattern>
</servlet-mapping>
</web-app>

D. Archivo: hessian-servlet.xml

Tiene que ser colocado en la carpeta WEB-INF. Debe llamarse servletname-servlet.xml. Especifica CalculationImpl y HessianServiceExporter como beans.

XML

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
ss    http://www.springframework.org/schema/beans/spring-beans.xsd">
      
    <bean id="calculationBean" class="com.geeksforgeeks.CalculationImpl"></bean>
    <bean name="/Calculation.http" class="org.springframework.remoting.caucho.HessianServiceExporter">
        <property name="service" ref="calculationBean"></property>
        <property name="serviceInterface" value="com.geeksforgeeks.Calculation"></property>
    </bean>
</beans>

E. Archivo: client-beans.xml

El bean para HessianProxyFactoryBean se define en este archivo XML. Esta clase requiere que se definan dos atributos.

  1. URL de servicio
  2. interfaz de servicio

F. Archivo: Cliente.java

Esta clase obtiene un objeto de cálculo y ejecuta la función de cubo.

Java

package com.geeksforgeeks;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
public class Client 
{
    public static void main(String[] args) 
    {
        ApplicationContext context = new ClassPathXmlApplicationContext("client-beans.xml");
        Calculation calculation = (Calculation)context.getBean("calculationBean");
        System.out.println(calculation.cube(4));
    }
}

Producción:

 Nota: Para generar el resultado anterior,

  • Inicie e implemente el proyecto, asumiendo que el servidor está escuchando en el puerto 8888. Cambie el serviceURL en client-beans.xml si se cambia el número de puerto.
  • A continuación, se debe compilar y ejecutar el archivo Client.java.

Publicación traducida automáticamente

Artículo escrito por sanketnagare y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *