一: 提供服务的远程一端
1-1. applicationContext.xml
1-2. 接口
package com.goodfan.rmi.service;public interface UserRmiService { public String sayHello(User user);}
1-3. javabean
package com.goodfan.rmi.service;import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 8550373205815267923L; private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
1-4. 实现类
package com.goodfan.rmi.service.impl;import com.goodfan.rmi.service.User;import com.goodfan.rmi.service.UserRmiService;public class UserRmiServiceImpl implements UserRmiService { @Override public String sayHello(User user) { return "Hello, " + user.getUserName(); }}
1-5. ServerTest类
package com.goodfan.rmi.service;import org.springframework.context.support.ClassPathXmlApplicationContext; public class ServerTest { public static void main(String[] args) { System.setProperty("java.rmi.hostname", "10.7.3.12"); new ClassPathXmlApplicationContext("applicationContext.xml"); System.out.println("server start......"); } }
二: 本地调用一端
2-1. applicationContext-client
c
2-2. ClientTest类
package com.goodfan.rmi.service;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class ClientTest { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-client.xml"); UserRmiService ums = (UserRmiService) ctx.getBean("rmiProxy"); User user = new User(); user.setUserName("RMI"); System.out.println(ums.sayHello(user)); } }