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 技术交流圈
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章