首页 > 代码库 > spring配置rmi
spring配置rmi
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">,否则会报错),代码如下:
Java代码
- <?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=http://www.mamicode.com/"baseService"></property>
- <!-- service 接口 -->
- <property name="serviceInterface" value=http://www.mamicode.com/"com.wym.service.BaseService"></property>
- <!-- 注册端口号 -->
- <property name="registryPort" value=http://www.mamicode.com/"1200"></property>
- </bean>
- </beans>
<?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="http://www.mamicode.com/baseService"></property> <!-- service 接口 --> <property name="serviceInterface" value="http://www.mamicode.com/com.wym.service.BaseService"></property> <!-- 注册端口号 --> <property name="registryPort" value="http://www.mamicode.com/1200"></property> </bean></beans>
BaseService.java
Java代码
- package com.wym.service;
- import com.wym.bi.User;
- public interface BaseService {
- public String getHelloword(String name);
- public String getUser(User user);
- }
package com.wym.service;import com.wym.bi.User;public interface BaseService { public String getHelloword(String name); public String getUser(User user);}
BaseServiceImpl.java
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();
- }
- }
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接口
Java代码
- 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;
- }
- }
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方法:
Java代码
- 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...");
- }
- }
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,代码如下:
Java代码
- <?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=http://www.mamicode.com/"rmi://192.168.0.37:1200/baseService"></property>
- <!-- service接口 -->
- <property name="serviceInterface" value=http://www.mamicode.com/"com.wym.service.BaseService"></property>
- </bean>
- </beans>
<?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="http://www.mamicode.com/com.wym.service.BaseService"></property> </bean></beans>
192.168.0.37是服务器的IP地址。
main方法
Java代码
- 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));
- }
- }
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方法,在控制台就能看见结果了。
spring配置rmi
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。