spring RMI rmoting遠程服務實例

還沒有測試,先留在這兒,轉自http://www.walkerjava.com/forum.php?mod=viewthread&tid=144&fromuid=3

服務器端:

接口定義類

public interface ITestRMI {
public String sayHelloWorld(String name);
}

接口實現類定義

public class TestRMI implements ITestRMI {

public String sayHelloWorld(String name) {
String string = name + " Welcome to walkerjava 技術交流圈";
return string;
}

服務器端spring配置文件

<!-- 定義實現類bean -->
<bean id="testRMI" class="com.walkerjava.service.TestRMI"></bean>

<!-- 服務器端配置 -->
<bean id="rmiServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
<!-- 定義提供服務的服務名稱 value隨便起,客戶端使用 -->
<property name="serviceName" value="test_rmi"></property>
<!-- 定義提供服務的實現類,在客戶端不用定義,value可以把bean的ID替換爲com.walkerjava.serviceTestRMI -->
<property name="service" value="testRMI" />
<!-- 定義提供服務的接口類,在客戶端必須定義,value可以定義bean然後替換爲bean的ID -->
<property name="serviceInterface" value="com.walkerjava.service.ITestRMI" />
<!-- 定義提供服務的端口號,客戶端使用 -->
<property name="registryPort" value="11580"/>
</bean>


客戶端配置方式一
客戶端接口與服務器端接口保持一致

public interface ITestRMI {
public String sayHelloWorld(String name);
}

客戶端服務層

public class TestService {

public void test(String name) {
String a = test_rmi.sayHelloWorld(name);
System.out.println(a);
}
/* spring 注入的名稱 */
private ITestRMI client_rmi;

public void setClient_rmi(ITestRMI client_rmi) {
this.client_rmi= client_rmi;
}
}

客戶端action控制

public class TestAction {
/* spring注入的service */
private TestService testService = null;

public String test() {
testService.test("xphaier");
return null;
}

public void setTestService(TestService testService) {
this.testService = testService;
}
}

客戶端spring配置文件

<!-- 客戶端配置 -->
<bean id="ref_client_rmi" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<!-- 定義服務器端提供的接口類,value可以定義ref=bean然後替換爲bean的ID -->
<property name="serviceInterface" value="com.walkerjava.service.ITestRMI" />
<!-- 定義服務器端提供的URL 端口號和服務器端的 registryPort配置的端口號一致-->


Struts.xml 配置

<package name="aa" extends="struts-default" namespace="/">
<action name="test" method="test" class="testAction"></action>
</package>

客戶端執行 http://localhost:8080/rmi_client/test.action

控制檯輸出 xphaier Welcome to walkerjava 技術交流圈
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章