RMI,为远程方法调用,我们要用spring来实现调用: 步骤1: 编写远程接口和远程接口的实现类 接口: package com.rmi; public interface ISomeService { public String doSomeService(String some); 实现类: package com.rmi; public class SomeService implements ISomeService { public int doOtherService(int other) { public String doSomeService(String some) { } 服务端的配置文件: <?xml version="1.0" encoding="UTF-8"?> 服务端启动代码: public class RMIServer { /** } } 步骤2: 编写客户端 客户端配置文件: <?xml version="1.0" encoding="UTF-8"?> package com.rmi; import org.springframework.context.ApplicationContext; public class RmiClient { /** } } 注意:客户端必须要有服务端ISomeService.class的文件,这样客户端才可以有关于该服务端接口的引用,这个是和一般的webservice的调用方法是一样的
public int doOtherService(int other);
}
// TODO Auto-generated method stub
return ++other;
}
// TODO Auto-generated method stub
return some+" is proceeed";
}
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="someService" class="com.rmi.SomeService"></bean>
<bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service" ref="someService"></property>
<property name="serviceName" value="SomeService"></property>
<property name="serviceInterface" value="com.rmi.ISomeService"></property>
</bean>
</beans>
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
ApplicationContext ctx = new ClassPathXmlApplicationContext("rmi.xml");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
if(br.readLine().equals("exit"))
{
break;
}
}
RmiServiceExporter rse = (RmiServiceExporter)ctx.getBean("serviceExporter");
rse.destroy();
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="someServiceProxy" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://127.0.0.1/SomeService"/>
<property name="serviceInterface" value="com.rmi.ISomeService"/>
</bean>
</beans>
客户端调用服务端的代码:
import org.springframework.context.support.ClassPathXmlApplicationContext;
* @param args
*/
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("rmi-client.xml");
ISomeService service = (ISomeService) ctx.getBean("someServiceProxy");
System.out.println(service.doSomeService("some request"));
Spring RMI
原创
©著作权归作者所有:来自51CTO博客作者tianya23的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:MD5加密算法
下一篇:Spring配置数据源
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
rmi of spring
entrBO d
客户端 spring 服务器端 -
Spring 使用RMI
Spring使用RMI非常简单,甚至比直接使用RMI还简单。[b]第一:首
Spring Java .net XML java -
远程调用 - spring+rmi
Spring提供类用于集成各种远程访问技术。这种对远程访问的支持可以降低你在用POJO实现支持远程访问
Spring Java Bean 防火墙 XML