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

آموزش متد راه دور در Java Spring

Spring با RMI (فراخوانی متد راه دور)

تجمیع Spring و RMI (فراخوانی متد راه دور)

RMI (فراخوانی متد راه دور) در Spring به شما این امکان را می دهد تا خدمات خود را از طریق زیرساخت RMI (فراخوانی متد راه دور) در معرض نمایش قرار دهید. Spring با کمک کلاس های org.springframework.remoting.rmi.RmiProxyFactoryBean و org.springframework.remoting.rmi.RmiServiceExporter راهی ساده برای اجرای برنامه های کاربردی RMI (فراخوانی متد راه دور) ارائه می دهد.


RmiServiceExporter

خدمات خروج شی rmi (فراخوانی متد راه دور) را فراهم می کند. می توان با استفاده از RMI (فراخوانی متد راه دور) ساده یا RmiProxyFactoryBean به این خدمات دسترسی داشت.


RmiProxyFactoryBean

Factory bean برای پروکسی های rmi (فراخوانی متد راه دور) است. خدمات پروکسی که به عنوان مرجع bean قابل استفاده هستند را ارائه می کند.


مثال ادغام Spring و RMI (فراخوانی متد راه دور)

مراحل ساده ادغام برنامه کاربردی Spring با RMI (فراخوانی متد راه دور) را با هم می بینیم.

  1. Calculation.java
  2. CalculationImpl.java
  3. applicationContext.xml
  4. client-beans.xml
  5. Host.java
  6. Client.java

فایل های jar مورد نیاز

برای اجرای این مثال نیاز به بارگذاری فایل های زیر دارید :

  • Spring Core jar files
  • Spring Remoting jar files
  • Spring AOP jar files

تمامی فایل های jar برای Spring از جمله core, web, aop, mvc, j2ee, remoting, oxm, jdbc, orm را دانلود کنید.


1- Calculation.java

این یک واسط ساده شامل متد cube است.

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

2- CalculationImpl.java

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

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

3- applicationContext.xml

در این فایل xml ، bean را برای دو کلاس CalculationImpl و RmiServiceExporter تعریف می کنیم. در ادامه باید برای خصیصه های زیر از کلاس RmiServiceExporter مقادیر ارائه کنیم.

  1. service
  2. serviceInterface
  3. serviceName
  4. replaceExistingBinding
  5. registryPort
< ?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 class="org.springframework.remoting.rmi.RmiServiceExporter">  
     < property name="service" ref="calculationBean">< /property>  
     < property name="serviceInterface" value="com.javatpoint.Calculation">< /property>  
     < property name="serviceName" value="CalculationService">< /property>  
     < property name="replaceExistingBinding" value="true">< /property>  
     < property name="registryPort" value="1099">< /property>  
< /bean>  
< /beans>

4- client-beans.xml

در این فایل xml ، برای RmiProxyFactoryBean ،bean را تعریف می کنیم. برای این کلاس دو خصیصه 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.rmi.RmiProxyFactoryBean">  
< property name="serviceUrl" value="rmi://localhost:1099/CalculationService">< /property>  
< property name="serviceInterface" value="com.javatpoint.Calculation">< /property>  
< /bean>  
< /beans>  

5- Host.java

این فایل گرفتن نمونه از ApplicationContext است. اما برای اجرای این مثال باید اول این کلاس را اجرا کنید.

package com.javatpoint;  
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
  
public class Host{  
public static void main(String[] args){  
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
System.out.println("Waiting for requests");  
}  
}  

6- Client.java

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

1.	package com.javatpoint;  
2.	import org.springframework.context.ApplicationContext;  
3.	import org.springframework.context.support.ClassPathXmlApplicationContext;  
4.	  
5.	public class Client {  
6.	public static void main(String[] args)  {  
7.	ApplicationContext context = new ClassPathXmlApplicationContext("client-beans.xml");  
8.	Calculation calculation = (Calculation)context.getBean("calculationBean");  
9.	System.out.println(calculation.cube(7));  
10.	}  
11.	}  

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

در ابتدا فایل Host.javaرا کامپایل و اجرا کنید. سپس فایل Client.javaرا کامپایل و اجرا کنید.


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

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