首页 > 其他分享 >Spring整合使用RMI-HelloWorld例子

Spring整合使用RMI-HelloWorld例子

时间:2023-11-08 16:04:55浏览次数:37  
标签:rmi java String Spring HelloWorld helloWorld RMI public


Spring整合RMI的原理

客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。

通过JRMP访问服务。JRMP JRMP:java remote method protocol,Java特有的,基于流的协议。


 

Spring整合使用RMI-HelloWorld例子_java

服务端暴露远程服务

RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通过把Bean包装在一个适配器类中工作。适配器类被绑定到RMI注册表中,并且将请求代理给服务类。

Spring整合使用RMI-HelloWorld例子_spring_02

 

服务端程序:

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. <?xml version="1.0" encoding="UTF-8"?>  
2. <beans xmlns="http://www.springframework.org/schema/beans"  
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
4. xmlns:tx="http://www.springframework.org/schema/tx"  
5. xsi:schemaLocation="http://www.springframework.org/schema/beans  
6. http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
7. http://www.springframework.org/schema/aop  
8. http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  
9. http://www.springframework.org/schema/tx  
10. http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">  
11.   
12. <bean id="helloWorld" class="springapp.rmi.rmi.HelloWorld" />  
13.   
14. <bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">  
15. <property name="service" ref="helloWorld" />  
16. <!-- 定义服务名 -->  
17. <property name="serviceName" value="hello" />  
18. <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />  
19. <property name="registryPort" value="8088" />  
20. </bean>  
21.   
22. </beans>

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. <?xml version="1.0" encoding="UTF-8"?>  
2. <beans xmlns="http://www.springframework.org/schema/beans"  
3. "http://www.w3.org/2001/XMLSchema-instance"  
4. "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
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.     </bean>  
9. </beans>

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.

标签:rmi,java,String,Spring,HelloWorld,helloWorld,RMI,public
From: https://blog.51cto.com/u_809530/8255927

相关文章

  • Spring注入Hibernate验证框架
    Spring配置文件<!--EnablestheSpringMVC@Controllerprogrammingmodel--> <mvc:annotation-drivenvalidator="validator"/> <!--配置数据校验--> <beanid="messageSource" class="org.springframework.context.suppor......
  • Spring 3.0 注解注入详解
    一、各种注解方式 1.@Autowired注解(不推荐使用,建议使用@Resource)     @Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired的标注位置不同,它们都会在Spring在初始化这个bean时,自动装配这个属性。要使@Autowired能够工作,还需要在配置文件中......
  • Springboot项目出现Error resolving template [index]的解决方法
    在SpringBoot中遇到模板文件不存在的问题在SpringBoot开发中,有时候会遇到Errorresolvingtemplate[index],templatemightnotexist这个错误,一般来说,这个错误可能有以下几种原因:模板文件路径错误:需要确认模板文件是否存在,并且其路径是否正确。通常模板文件的路径应该是class......
  • springboot3.1.5+文件上传+文件下载
    idea创建项目springbootdemo-download-upload加上thymeleaf模板maven依赖application.properties配置#thymeleaf页面缓存设置(默认为true)spring.thymeleaf.cache=false#单个上传文件大小限制(默认1MB)spring.servlet.multipart.max-file-size=10MB#总上传文件大小限制(默......
  • 上下文中找不到org.springframework.boot.web.servlet.server.ServletWebServerFactor
    1.问题报错如下:Description:Webapplicationcouldnotbestartedastherewasnoorg.springframework.boot.web.servlet.server.ServletWebServerFactorybeandefinedinthecontext.Action:Checkyourapplication'sdependenciesforasupportedservletwebse......
  • Spring Boot + WebSocket 实时监控,实战来了!
    写在前面此异常非彼异常,标题所说的异常是业务上的异常。最近做了一个需求,消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为需要服务端主动向客户端发送消息,所以很容易的就想到了用WebSocket来实现这一功......
  • 探讨一下spring中bean名字的生成规则
    注入的controller属于内部类,并继承了某个类,一开始以为其名字也是类名首字母小写的字符串,结果错了,实际是父类首字母小写+"."+当前类名,下面我们一起探究一下,spring的bean名字生成规则。spring属性注入查找属性值是在org.springframework.beans.factory.support.DefaultListableBe......
  • springboot高版本(2.5以上)解决跨域问题
    版本说明springboot2.7.17原来代码importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.CorsRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration......
  • 关于spring-boot-starter-parent 3.1.2和3.1.5版本的区别导致的错误
    1.问题在学习黑马程序员SpringBoot3+Vue3全套视频教程时,手动配置springboot项目时,由于之前spring-boot-starter-parent安装的版本是3.1.5,视频要求的是3.1.2,但是之前怎么弄也无法下载到3.1.2(后面已解决,可参考手动配置Maven依赖项),索性就是用了3.1.5版本。但是随即就遇到了问题,在......
  • How to grant permissions to a custom assembly that is referenced in a report in
    Ref:http://support.microsoft.com/kb/842419/en-us HowtograntpermissionstoacustomassemblythatisreferencedinareportinReportingServicesViewproductsthatthisarticleappliesto.ArticleID:842419LastReview:April3,2007Revision:2.1OnThisPa......