Spring rmi配置

来源:互联网 发布:战龙三国典藏进阶数据 编辑:程序博客网 时间:2024/05/21 17:26
Spring Rmi配置
1、服务器端
新建一个Dynamic 、Web Project,导入支持Spring jar包。在WEB-INF下新建applicationContent.xml(必须加上<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">,否则会报错),代码如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans>        <bean id="baseRmiService" class="com.wym.service.impl.BaseServiceImpl">    </bean>    <bean id="baseServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">    <!-- 调用Service -->    <property name="service" ref="baseRmiService"></property>    <!-- value值是给用户调用 -->    <property name="serviceName" value="baseService"></property>    <!-- service 接口 -->    <property name="serviceInterface" value="com.wym.service.BaseService"></property>    <!-- 注册端口号 -->    <property name="registryPort" value="1200"></property>    </bean></beans>


BaseService.java
package com.wym.service;import com.wym.bi.User;public interface BaseService {public String getHelloword(String name);public String getUser(User user);}


BaseServiceImpl.java
package com.wym.service.impl;import com.wym.bi.User;import com.wym.service.BaseService;public class BaseServiceImpl implements BaseService {public String getHelloword(String name){return "Welcome to Shanghai," + name + "!";}public String getUser(User user){return "name: " + user.getName() + "------>" + "age: " + user.getAge();}}


User:必须实现Serializable接口
package com.wym.bi;import java.io.Serializable;public class User implements Serializable {      private static final long serialVersionUID = 1L;        private String name;      private int age;        public User(){}            public User(String name, int age){          this.name = name;          this.age = age;      }            public String getName() {          return name;      }        public void setName(String name) {          this.name = name;      }        public int getAge() {          return age;      }        public void setAge(int age) {          this.age = age;      }  }


main方法:
package com.wym.service;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.wym.service.BaseService;public class BaseServiceTest {/** * @param args */public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");BaseService baseService = (BaseService) context.getBean("baseRmiService");System.out.println("baseRmiService start...");}}

把service借口和java bean打成jar包放到客户端的里面。
启动main方法,或者将service发布到服务器。


2、客户端
新建一个java项目或者web项目,导入Spring jar包。新建applicationContext.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="baseService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"><!-- baseService是调用服务端serviceName的value --><property name="serviceUrl" value="rmi://192.168.0.37:1200/baseService"></property><!-- service接口 --><property name="serviceInterface" value="com.wym.service.BaseService"></property></bean></beans>

192.168.0.37是服务器的IP地址。

main方法
package wym.client;import com.wym.bi.User;import com.wym.service.BaseService;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ClientTest {    public static void main(String[] args) {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("file:d:/tnt_project/TEST/conf/applicationContext.xml");        BaseService baseService = (BaseService) context.getBean("baseService");        System.out.println(baseService.getHelloword("Yunmin Wu"));        User user = new User();        user.setName("Dan Qiao");        user.setAge(48);        System.out.println(baseService.getUser(user));    }}


关于Spring的applicationContent.xml文件的详解,请点此链接:http://ithead.iteye.com/admin/blogs/1461565。
运行main方法,在控制台就能看见结果了。