Spring HttpInvoker(一)

深入学习 Spring HttpInvoker 深入学习 Spring HttpInvoker 远程通信协议 RPC 远程过程调用,是一个计算机通信协议,允许一台计算机的程序,调用另一台计算机的子程序。如果涉及到的软件采用面向对象编程,亦可称为远程方法调用(如 Java RMI) RMI 一般指Java RMI (Java Remote Method Invocation) Java远程方法调用,只适用于Java程序之间的通... 阅读详情

一: 暴露服务(Spring mvc暴露服务)

package com.xx.service;

public interface ISayHelloService {

	/**
	 * @param name
	 * @return
	 */
	 String doSayHello(String name);
} 
package com.xx.service.impl;

import com.xx.service.ISayHelloService;
public class DefaultSayHelloServiceImpl implements ISayHelloService {

	public String doSayHello(String name) {
		return "hello, " + name;
	}
}
通过Spring mvc暴露服务
web.xml
<!-- DispatcherServlet -->
	<servlet>
		<servlet-name>Spring-DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/config/applicationContext-server.xml</param-value>
		</init-param>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>Spring-DispatcherServlet</servlet-name>
		<url-pattern>*.service</url-pattern>
	</servlet-mapping>
applicationContext-server.xml
	<bean id="defaultSayHelloService" class="com.xx.service.impl.DefaultSayHelloServiceImpl" />
	
	<bean id="sayHelloServiceExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter" >
		<property name="service" 			ref="defaultSayHelloService" />
		<property name="serviceInterface" 	value="com.xx.service.ISayHelloService" />
	</bean>
		
	<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	   	<property name="urlMap">
			<map>
			  <entry key="/defaultSayHelloService.service" value-ref="sayHelloServiceExporter" />
			</map>
		</property>
	</bean>	

二:引用服务

package com.xx.service;

public interface ISayHelloService {

	/**
	 * @param name
	 * @return
	 */
	 String doSayHello(String name);
}
applicationContext-client.xml
	<bean id="sayHelloService"  class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
		<property name="serviceUrl" 		value="http://localhost:8080/httpInvoker/defaultSayHelloService.service" />
		<property name="serviceInterface" 	value="com.xx.service.ISayHelloService"/>
	</bean>
public class ClientMain {
	
	private static final DefaultListableBeanFactory beanFactory;
	
	static {
		beanFactory = new DefaultListableBeanFactory();
		BeanDefinitionReader beanDefinitionReader = new XmlBeanDefinitionReader(beanFactory);
		Resource resource = new ClassPathResource("applicationContext-client.xml");
		beanDefinitionReader.loadBeanDefinitions(resource);
	}
	
	public static void main(String[] args) {
		ISayHelloService sayHelloService = beanFactory.getBean("sayHelloService", ISayHelloService.class);
		System.out.println(sayHelloService.doSayHello("王五"));
	}
}
免费获取船舶轨迹数据?手把手教你用Python处理中国海洋卫星AIS数据 本文详细介绍了如何免费获取中国海洋卫星AIS数据,并使用Python进行船舶轨迹数据的处理与分析。从数据源评估到自动化处理流水线,再到高级分析与可视化技巧,手把手教你避开常见问题,实现高效数据处理。特别适合航运数据分析、物流优化和海上安全研究等领域的研究者和开发者。 阅读详情

相关推荐

STM32智能头盔DIY全攻略:从心率监测到跌倒报警的完整实现

本文提供了基于STM32的智能头盔完整DIY实现方案,涵盖从心率监测到跌倒报警的核心功能。详细解析了系统设计、硬件搭建、软件算法及系统联调,重点介绍了STM32主控、MAX30102心率传感器和MPU6050姿态传感器的应用,并分享了跌倒检测算法与功耗优化等实战经验,为嵌入式开发与物联网创新项目提供全面指导。

sony5的博客 500

Spring HTTP invoker简介

Spring HTTP invoker简介Spring HTTP invoker是spring框架中的一个远程调用模型,执行基于HTTP的远程调用(意味着可以通过防火墙),并使用java的序列化机制在网络间传递对象。客户端可以很轻松的像调用本地对象一样调用远程服务器上的对象,这有点类似于webservice,但又不同于webservice,区别如下:webservice

hanqunfeng的专栏 8187

ArcGIS通过已知坐标点转面(通过excel文件,有工具可批量生成面要素)

通过使用ArcGIS中的工具,将坐标点XY数据转换成可视化的点线面矢量数据,更加方便快捷有效的获取对应信息

qq_41046162的博客 3万+

在Spring Boot中使用Http Invoker

在Spring 中使用Http Invoker在官方文档中已经描述的很清楚了,那么,在Spring Boot中怎么使用呢? 首先我们定义一个接口: public interface ITestService { String test(byte[] hello); } Server 在Server中,我们要一个对外提供服务的url,平时我们都是使用@Controller和@Reques...

Big的装逼广场 4734

Gromacs文件格式全解析:xtc vs trr vs cpt,哪种更适合你的模拟需求?

本文深入解析Gromacs分子动力学模拟中的三种核心文件格式xtc、trr和cpt,详细对比其技术特性和适用场景。xtc适合存储效率优先的场景,trr保留完整动力学数据,cpt确保模拟精确重启。通过实际配置示例和存储优化技巧,帮助用户根据模拟需求选择最佳格式组合,平衡分析灵活性与存储成本。

weixin_29281941的博客 96

python实现语音信号的分帧、加窗、预处理

语音信号实现分帧、加窗、预处理音频文件读取预加重分帧加窗 音频文件读取 librosa是非常强大的python语音信号处理库。 读取音频: 使用语句librosa.load(path, sr=22050, mono=True, offset=0.0, duration=None)读取音频文件,默认的采样率是22050,若要保留音频的原始采样率,使用sr=None。 其中: path:表示音频文件的路径 sr:表示采样率 mono:bool,是布尔类型,表示是否将信号转换为单声道 offset:float,后

weixin_45272908的博客 1万+

SpringInAction学习笔记——第15章 使用远程服务

15.1 Spring远程调用概览Spring支持多种不同的RPC模型,包括RMI、Caucho的Hessian和Burlap以及Spring自带的HTTP invoker15.2 使用RMI1.编写一个服务实现类,类中的方法必须抛出java.rmi.RemoteException异常; 2.创建一个继承于java.rmi.Remote的服务接口; 3.运行RMI编译器(rmic),创建客户端s

zhuliangjiang的博客 617

MYSQL、ORACLE、PostgreSQL数据库对象层次及权限管理对比

本文为出于自己扩展、比较、图形化的思维路径自行总结归纳,可能有些细节不太准确,欢迎指正。MySQL、Oracle、PostgreSQL关系型数据库都有管理员用户、用户、权限管理、表函数索引等数据库对象,schema。但在数据库对象隶属层次上有差异和相同的地方。

rachel_2016的博客 1490

SpringBootH ttpInvoker接口调用

SpringBootH ttpInvoker接口调用 服务接口暴露: springboot-httpinvoker-server 调用服务接口: springboot-httpinvoker-client 服务接口暴露: @Configuration public class ServerInvokerExporter { @Autowired(required = false) private IUserService userSer...

qq_36521848的博客 764

224G PAM-4 通道的 PCB 和封装设计

该行业正在努力实现层厚非常低的 sub-Dk = 3 材料,以及更先进的加工,这将使封装和 PCB 中的透射电镜截止值更高。当回波损耗占主导地位时,我们基本上需要去除沿互连产生阻抗失配的任何元件,就像上面描述的更光滑的铜和更低的 Dk 值一样。第二个影响是传输线阻抗匹配在 56 GHz 范围内的非常高的频率下非常困难的主要原因之一,另一个因素是 Tx 或 Rx 封装/缓冲器中的寄生效应。由于 PCB 和封装中的长度刻度,这是 BGA 上的焊盘、过孔和球等小结构开始在输入阻抗中产生明显偏差的频率范围。

jkh920184196的博客 841

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1311

HttpInvokerServiceExporter和HttpInvokerProxyFactoryBean的实现

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33859844的博客 1565

CANbus收发器ADM3053BRWZ-REEL7应用原理图设计

ADM3053 在 CAN 协议控制器与物理层总线之间创建一个 完全隔离的接口。该器件具有限流和热关断特性,可防止输出短路。额定温 度范围为工业温度范围,提供 20 引脚、宽体 SOIC 封装。该器件采用 5 V 单电源供电, 提供完全隔离的 CAN 解决方案。ADM3053 是一款隔离式控制器区域网络 (CAN) 物理层收 发器,集成隔离 DC/DC 转换器,符合 ISO 11898 标准。该器件采用 ADI 公司的。Coupler® 技术,将双通道隔离器、 CAN 收发器和 ADI 公司的。

zhusl6688的博客 1239

【RPC框架HttpInvoker一】HttpInvoker:Spring自带RPC框架

HttpInvoker是Spring原生的RPC调用框架,HttpInvoker同Burlap和Hessian一样,提供了一致的服务Exporter以及客户端的服务代理工厂Bean,这篇文章主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成   在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了...

bit1129的博客 432

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring中Http Invoker的使用详解

    最近一个项目中数据更改时需要使更改后的数据同步到另一个项目中,最后我们是用Spring的Http Invoker来实现的。 1.Test.java public interface Test { /** * 自动从数据库同步公共信息或从传入参数同步公共信息 * @param commConfigMap * @return */ public boolean sync...

javalfans的专栏 325

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

相同应用在不同区域的实例跨区域调用

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

scholar_wu2011的博客 536

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

spring-remoting中的httpInvoker实现并安全验证

1. 简单介绍httpInvoker的实现  2.

lsblsb的专栏 5377

Spring HttpInvoker & EOFException

<br /> <br />配置完服务端Spring HttpInvoker后(Tomcat中),使用Web Browser访问资源地址收到如下错误:<br /> <br />  图1<br /> <br /> <br />图1中的java.io.EOFException是因为我是使用浏览器直接访问HttpInvokerServiceExporter,此时没有传递任何有意义的参数,但是HttpInvokerServer仍然已假设正确的方式读取。<br /> <br />分析图1中出现的异常情况后,接下来便配

fantasy10o10o的专栏 1996

Spring httpinvoker入门教程

httpinvoker 参考:Spring 实现远程访问详解——httpinvoker Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和返回值是比较复杂的,通过httpInvoker有巨大的优势。 远程访问流程如下 1. 服务端定义服务接口 package com.lm.core.service; import java.util.List; import com.lm.core.entity.User; publi

小半的博客 1322

Spring中HttpInvoker实例

 Spring版本2.5.6.SEC011.服务端:需要如下jar包:spring.jar spring-webmvc.jarIPersonService.javapublic interface IPersonService { public String queryPersonName();} PersonServiceImpl.javapublic cla

up2pu的专栏 2293

HttpInvoker运作原理

Spring源码解析系列均基于Spring Framework 4.2.7 把第三方系统的方法搬到本地HttpInvoker是常用的Java同构系统之间方法调用实现方案,是众多Spring项目中的一个子项目。顾名思义,它通过HTTP通信即可实现两个Java系统之间的远程方法调用,使得系统之间的通信如同调用本地方法一般。HttpInvoker和RMI同样使用JDK自带的序列化方式,但是HttpInvo

zstu_cc的专栏 1万+

Spring HttpInvoker

BTT中新加入了Java Connector技术,做了一下调查,发现Spring原来也有一样的技术,叫做Http Invoker,作为RMI的一种实现方法,最大的不同点是其使用的是http协议,底层实现应该差不多,主要使用Object Serializable、Proxy等技术。网上的文章说的比较清楚,具体的可以看下面这篇文章:http://blog.youkuaiyun.com/daryl715/a

Justin's Super Spirit 1813

使用spring的HttpInvoker实现远程服务

HttpInvoker集合了RMI、hessian、burlap的优点,在spring中他们的配置基本相同 服务端 maven依赖: <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifact...

qq_38779912的博客 257

Spring源码分析总结——HttpInvoker

该文章基于《Spring源码深度解析》撰写,感谢郝佳老师的奉献 HttpInvoker 因为RMI使用标准的Java标准的对象私有化,很难穿越防火墙,但是Hessian/Burlap因为是基于HTTP的服务却能很好的穿越防火墙。 在这种情况下,Spring的HttpInvoker应运而生,基于HTTP的远程调用,并且使用Java序列化机制,现在给出小Demo: 首先其代码结构如下 ...

可爱滴老唐 305

Spring远程服务----HttpInvoker实现远程调用

1.简介 Spring的之前两篇远程服务调用方式,RMI服务使用的是Java标准的对象私有序列化机制,但很难穿越防火墙,而Hessian和Burlap服务是基于HTTP的服务,所以不受防火墙限制,但采用了私有的对象序列化机制。那么有没有一种服务可以总和了 2.介绍 3.测试 4.参考文档 ...

梦悠哉的博客 1669

java httpinvoker_Spring中HttpInvoker实例

Spring版本2.5.6.SEC011.服务端:需要如下jar包:spring.jar spring-webmvc.jarIPersonService.javapublic interface IPersonService {public String queryPersonName();}PersonServiceImpl.javapublic class PersonServiceImpl ...

weixin_42195978的博客 196
上一篇: Spring RMI 源码浅析-RmiProxyFactoryBean 调用服务
下一篇: Spring HttpInvoker(二)
胸口碎大石_
博客等级 码龄17年 1154粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值