Spring整合RMI的原理
客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。
通过JRMP访问服务。JRMP JRMP:java remote method protocol,Java特有的,基于流的协议。
服务端暴露远程服务
RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通过把Bean包装在一个适配器类中工作。适配器类被绑定到RMI注册表中,并且将请求代理给服务类。
服务端程序:
1 IHelloWorld.java POJO的接口
1. public interface IHelloWorld {
2. public String helloWorld();
3.
4. public String sayHelloToSomeBody(String someBodyName);
5. }
2 HelloWorld.java POJO的实现
1. public class HelloWorld implements IHelloWorld {
2.
3. @Override
4. public String helloWorld() {服务器托管网
5. return "Hello World!";
6. }
7.
8. @Override
9. public String sayHelloToSomeBody(String someBodyName) {
10. return "Hello World!" + someBodyName;
11. }
12.
13. }
3 spring配置文件rmi_server_context.xml
1.
2.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
4 服务端启动RMI的代码HelloHost.java
1. public class HelloHost {
2. public static void main(String[] args) {
3. new ClassPathXmlApplicationContext(
4. "rmi_server_context.xml");
5. "RMI服务伴随Spring的启动而启动了.....");
6. }
7. }
客户端
1 配置文件rmi_client_context.xml
1.
2.
5. "helloWorld" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
6. "serviceUrl" value="rmi://10.87.40.141:8088/hello" />
7. "serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
8.
9.
2 客服务器托管网户端代码 HelloClient.java
1. public class HelloClient {
2.
3. public static void main(String[] args) throws RemoteException {
4. new ClassPathXmlApplicationContext(
5. "rmi_client_context.xml");
6. "helloWorld");
7. System.out.println(hs.helloWorld());
8. "Lavasoft"));
9. }
10.
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 【AI新趋势期刊#1】GPT自动理解视频、AI法律顾问、大模型安全围栏
每天都要浏览大量AI相关新闻,是不是感到信息量爆炸,有效信息少? 这么多新产品和新工具,到底哪些是真正是有价值的,哪些只是浮躁的一时热点? 想参与AI产品和工具的开发,从哪里能够获得大量的灵感和思路? 我会把AI相关的新趋势、新想法、新思路,和成熟AI产品、工…