کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Spring از راه دور با Hessian

Hessian

مثال Spring از راه دور با Hessian

با کمک کلاس های HessianServiceExporter و HessianProxyFactoryBean، میتوان خدمات از راه دور ارائه شده توسط hessian را پیاده سازی کرد.


مزیت Hessian

Hessian در دیوار آتش به خوبی کار می کند و برای ادغام با سایر زبان ها از جمله PHP و .net قابل انتقال است.


مثال از راه دور توسط Hessian

برای ایجاد یک برنامه کاربردی ساده hessian فایل های زیر را باید ایجاد کنید.

  1. Calculation.java
  2. CalculationImpl.java
  3. web.xml
  4. hessian-servlet.xml
  5. client-beans.xml
  6. Client.java

1- Calculation.java

یک واسط ساده دربردارنده یک متد cube است.

package com.javatpoint;  
public interface Calculation {  
int cube(int number);  
}  

2- CalculationImpl.jav

این کلاس پیاده سازی واسط محاسبات(Calculation) را ارائه می دهد.

package com.javatpoint;  
public class CalculationImpl implements Calculation{  
    public int cube(int number) {  
        return number*number*number;  
    }  
}

3- web.xml

در این فایل xml، DispatcherServlet را به عنوان کنترلر جلو تعریف می کنیم. اگر هر درخواستی پسوند .http داشته باشد، بهDispatcherServlet فرستاده می شود.

< ?xml version="1.0" encoding="UTF-8" ?>
  
< web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
     
     < 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>  

4- hessian-servlet.xml

این فایل باید درون پوشهWEB-INF ایجاد شود و نام آن باید servletname-servlet.xml باشد. این فایل bean را برای CalculationImpl و HessianServiceExporter تعریف می کند.

< ?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
     http://www.springframework.org/schema/beans/spring-beans.xsd">  
       
< bean id="calculationBean" class="com.javatpoint.CalculationImpl">< /bean>  
< bean name="/Calculation.http"
class="org.springframework.remoting.caucho.HessianServiceExporter">  
     < property name="service" ref="calculationBean">< /property>  
     < property name="serviceInterface" value="com.javatpoint.Calculation">< /property>  
< /bean>  
   
< /beans>  

5- client-beans.xml

در این فایل xml ، bean را برای HessianProxyFactoryBean تعریف می کنیم. علاوه بر آن دو خصیصه serviceUrl و serviceInterface از این کلاس را نیز باید تعریف کنید.

< ?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
http://www.springframework.org/schema/beans/spring-beans.xsd">  
      
< bean id="calculationBean"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">  
     < property name="serviceUrl"
value="http://localhost:8888/hessian/Calculation.http">< /property>  
     < property name="serviceInterface" value="com.javatpoint.Calculation">< /property>  
< /bean>  
< /beans>  

در این مثال، نام پروژه hessian است، به این معنی که به عنوان ریشه متن(context root) در serviceURL مورد استفاده قرار گرفته است.


6- Client.java

این کلاس یک نمونه از Calculation می گیرد و متد cube را فراخوانی می کند.

package com.javatpoint;  
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(5));  
 }  
}  

نحوه اجرای این مثال

پروژه را شروع و مستقر کنید، در اینجا فرض می کنیم سرور روی پورت شماره 8888 در حال اجرا است. اگر شماره پورت متفاوت است، serviceURL را در فایل client-beans.xml تغییر دهید. سپس فایل Client.java را کامپایل و اجرا کنید.


1399/01/24 1514 398
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...