مشخصات مقاله
-
429
-
0.0
-
2015
-
0
-
0
آموزش متد راه دور در 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 (فراخوانی متد راه دور) را با هم می بینیم.
- Calculation.java
- CalculationImpl.java
- applicationContext.xml
- client-beans.xml
- Host.java
- 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 مقادیر ارائه کنیم.
- service
- serviceInterface
- serviceName
- replaceExistingBinding
- 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را کامپایل و اجرا کنید.