疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

spring rmi例子

Posted on 2010-01-27 21:07 疯狂 阅读(4056) 评论(0)  编辑  收藏 所属分类: spring
首先是服务端:
接口和实现

public interface ServerRmiI {

 public String sayHi(String name);
}


public class ServerRmiImpl implements ServerRmiI{

 public String sayHi(String name) {
  // TODO Auto-generated method stub
  return "Hi,"+name;
 }

}

配置:
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true">  
     <bean name="rmiserver" class="com.server.ServerRmiImpl"/>
     <bean name="serverTest" class="org.springframework.remoting.rmi.RmiServiceExporter">
       <property name="service" ref="rmiserver"/>
       <property name="serviceName" value="serverRmiTest"/>
       <property name="serviceInterface" value="com.server.ServerRmiI"/>
       <property name="registryPort" value="1021"/>
     </bean>
</beans>

启动:
public static void main(String[] args) {
  ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-bean.xml");
        context.getBean("serverTest"); 
 }
看见如下信息就代表成功了:
信息: Binding service 'serverRmiTest' to RMI registry: RegistryImpl[UnicastServerRef [liveRef: [endpoint:[yourhost:1021](local),objID:[0:0:0, 0]]]]
客户端:
配置:
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context-2.5.xsd"
    default-autowire="byName" default-lazy-init="true">  
     <bean name="clentrmi" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
     <property name="serviceUrl" value="rmi://yourhost:1021/serverRmiTest"/>
     <property name="serviceInterface" value="com.server.ServerRmiI"/>
     </bean>
</beans>

测试类:
public static void main(String[] args) {
  ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-bean.xml");
        ServerRmiI rmiI = (ServerRmiI) context.getBean("clentrmi");
        System.out.println(rmiI.sayHi("rmi"));
 }
打印:Hi,rmi

只有注册用户登录后才能发表评论。


网站导航: