RMI-spring RMI固定随机数据端口
RMI-spring RMI固定随机数据端口
RMI 在启动时,会启动两个端口一个是应用端口,就是你的应用指定的端口,另一个是RMI随机分配的数据传输端口。如果LINUX开通了防火墙,必须同时开放这两个端口,才能正常访问服务。可以采用以下方式进行固定随机分配的数据传输端口。该方式只针对sping应用,其他方式暂未尝试。
1 示例
1.1 接口类
新建 BaseService.java
package com.example.springrmifixedport.rmi;import java.rmi.Remote;
import java.rmi.RemoteException;/*** RMI 接口类* @author Anna.* @date 2021/4/16 10:50*/
public interface BaseService extends Remote {/*** 测试* @param name* @return java.lang.String* @throws Exception* @author Anna.* @date 2021/4/16 10:50*/public String test(String name) throws RemoteException;
}
1.2 接口实现类
新建BaseServiceImpl.java
package com.example.springrmifixedport.rmi;import java.rmi.RemoteException;/*** RMI 实现类** @author Anna.* @date 2021/4/16 10:50*/
public class BaseServiceImpl implements BaseService {@Overridepublic String test(String name) throws RemoteException {return "hello " + name + " !";}
}
1.3 配置XML
resources目录新建spring-rmi.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="baseRmiService" class="com.example.springrmifixedport.rmi.BaseServiceImpl"/><bean id="baseServiceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter"><property name="service" ref="baseRmiService"></property><!-- 配置服务名称--><property name="serviceName" value="baseService/test"></property><!-- 配置服务接口--><property name="serviceInterface" value="com.example.springrmifixedport.rmi.BaseService"></property><!-- 配置服务端口--><property name="registryPort" value="8082"></property><!-- 固定随机分配的通信的端口 --><property name="servicePort" value="18082" /></bean>
</beans>
1.4 启动方法
public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-rmi.xml");BaseService baseService = (BaseService) context.getBean("baseRmiService");System.out.println("baseRmiServicee start...........");}
1.5 接口测试
注意:引入BaseService接口类时,必须保证包名与服务一致
public static void main(String[] args) {String remoteAddr = "rmi://127.0.0.1:8082/baseService/test";try {BaseService baseService = (BaseService) Naming.lookup(remoteAddr);String resp = baseService.test("adsas");System.out.println(resp);} catch (NotBoundException e) {e.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (RemoteException e) {e.printStackTrace();}}
2 demo源码
spring-rmi-fixed-port.zip
链接:https://pan.baidu.com/s/170vsXxXThNWBT5TPXN5jAg
提取码:j3np
RMI-spring RMI固定随机数据端口相关推荐
- python随机生成一组数据_使用Python random模块生成随机数据实例
在本节中,我们将学习如何使用random模块(random)在Python中生成随机数和数据.该模块为各种分布(包括整数,浮点数(实数))实现了伪随机数生成器. 本文的目标: 以下是我们将在本文中介绍 ...
- Spring RMI反序列化漏洞分析
文章目录 概况 ReadObject流程 Jndi注入POC分析 server部分 client部分 恶意类部分 整体的攻击流程 概况 漏洞的入口在于Spring-tx-xxx.jar中的JtaTra ...
- 《Spring技术内幕》学习笔记19——Spring RMI实现远程调用
1.Spring除了使用基于HTTP协议的远程调用方案,还为开发者提供了基于RMI机制的远程调用方法,RMI远程调用网络通信实现是基于TCP/IP协议完成的,而不是通过HTTP协议. 在Spring ...
- Spring rmi
2019独角兽企业重金招聘Python工程师标准>>> 1.org.springframework.remoting.rmi.RmiProxyFactoryBean 其使用的是rmi ...
- 静态Web服务器-返回固定页面数据
1. 开发自己的静态Web服务器 实现步骤: 编写一个TCP服务端程序 获取浏览器发送的http请求报文数据 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器. HTTP响应报文数据 ...
- Spring整合Redis做数据缓存(Windows环境)
当我们一个项目的数据量很大的时候,就需要做一些缓存机制来减轻数据库的压力,提升应用程序的性能,对于java项目来说,最常用的缓存组件有Redis.Ehcache和Memcached. Ehcache是 ...
- X-Mas Musings –在Grails集成测试中不要使用随机服务器端口
对许多人来说,十二月是反思或思考的时期. 所以我决定在去年的事情和想法,以反映- 每一天 ,直到圣诞节. 这是第四天 对于Grails集成测试,了解应用程序当前在哪个端口上运行非常有用. Spring ...
- Java VisualVM添加远程JMX连接时提示“无法使用service:jmx:rmi:///jndi/rmi******连接到*****”
在使用本地Java VisualVM连接测试服务器上的JVM时出现提示 无法使用service:jmx:rmi:///jndi/rmi://***.***.***.***:****连接到***.*** ...
- 季节性的分析才不简单,小心不要在随机数据中也分析出季节性...
雷锋网 AI 科技评论按:这篇文章来自 Automattic 的数据科学家 Carly Stambaugh,她研究了一个看似简单的问题:分析序列数据中的季节性.「季节性」说起来很简单,但是真的分析的时 ...
最新文章
- [Flutter] Android沉侵式标题栏顶部叠加层去除
- 适合零基础学python的书籍_适合零基础学习Python的书籍
- Android应用开发—知识点汇总
- √2是个无理数,没有尽头,为什么边长为1的直角三角形可以画出来? 是悖论吗?...
- Unity中Temporal AA
- 深度学习多模态融合_多模态深度学习:用深度学习的方式融合各种信息
- markdown格式的文章如何转换为可以发布在微信公众号上的内容
- linux无法侦听10000以上的端口,linux – git-daemon:“无法在主机(null)端口9418上分配任何侦听套接字”...
- 淘宝/天猫api 收货地址列表 API接口
- 手动编译源代码安装wget
- Java微信小微商户进件,已经解决接口暂无权限,稍后再试的问题
- 服务器3D场景建模(五):体素场景(三)
- 2022 Gartner新兴技术成熟曲线
- 永磁同步电机转子位置估算专题 —— 基波模型类位置估算概要
- HDwiki模板说明
- 29.Silverlight碰撞测试、检测自定义控件碰撞,雷达扫描图之扫描雷达点状态
- RK3399平台开发系列讲解(IIO子系统)4.43、IIO数据的获取方式介绍
- [USA]办理美国签证,被Check
- 安卓开发5-fragment和activity
- 怎么学会查看建筑图纸?dwg建筑图怎么打开?