关于Spring--hessian远程调用接口服务配置

Spring-boot集成Hessian服务 阅读详情

maven依赖hessian的jar包如下:

<dependency>
     <groupId>com.caucho</groupId>
     <artifactId>hessian</artifactId>
     <version>4.0.37</version>
</dependency>

服务端:

1、创建hession-servlet.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"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-4.0.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
	
	<context:annotation-config />
	<!--   定义普通的bean实例,接口的实现类 -->
	<bean id="personImpl" class="com.test.service.impl.PersonServiceImpl"/>	
	<!--   使用HessianServiceExporter 将普通bean导出成Hessian服务,将接口暴露给外部给客户端调用,/personService.remote为远程调用接口的url -->
	<bean name="/personService.remote" class="org.springframework.remoting.caucho.HessianServiceExporter">
		<!--  需要导出的目标bean(导出接口的实现类) -->
		<property name="service"  ref="personImpl"/>
		<!--  Hessian服务的接口 -->
		<property name="serviceInterface" value="com.test.service.PersonService"/>
	</bean>
</beans>

2、配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_test" version="3.0">
	<display-name>test</display-name>
	<context-param>
    	<param-name>webAppRootKey</param-name>
    	<param-value>test.root</param-value>
 	</context-param>
	
	<!-- springMVC配置 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:config/springMVC-servlet.xml</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	
	<!-- hessian远程调用配置,设置mvc拦截器,用来拦截远程调用的接口的url -->
	<servlet>
		<servlet-name>hessian</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
                        <!--上面配置的xml文件-->
			<param-value>classpath:config/hessian-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>hessian</servlet-name>
                <!--拦截的路径-->
		<url-pattern>/hessian/*</url-pattern>
	</servlet-mapping>
  	
</web-app>

3、将暴露的接口(接口需要用到的实体类model)导出为jar包,供客户端直接引用

总结:

  • 通过springMVC的DispatherServlet控制Hessian服务接口的URL访问路径,即web.xml配置
  • 新建Hessian服务 例如:Service 和实现类 ServiceImpl
  • 配置Hessian服务的暴露,通过HessianServiceExporter
     

客户端:

1、引用服务端提供的jar包

2、applicationContext.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"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd 
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-4.0.xsd 
		http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

	<!-- 启用注解 -->
	<context:annotation-config />
	
	<!-- 创建bean代理对象,调用远程接口服务,id:要与@Autowired注入的名称相同 -->
	<bean id="personService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
		<property name="overloadEnabled" value="true" />
		<!-- 调用的远程接口url -->
		<property name="serviceUrl">
			<value>http://127.0.0.1:8080/test/hessian/personService.remote</value>
		</property>
		<!-- 远程调用服务接口(本地的接口),该接口要与服务端的接口完全一致 -->
		<property name="serviceInterface">
			<value>com.test.service.PersonService</value>
		</property>
	</bean>
	
</beans>

3、客户端在Cotroller层可直接@autowired注入接口服务(hessian代理对象)

package com.myproject.controller;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.test.entity.Person;
import com.test.service.PersonService;

@Controller
@RequestMapping("/test")
public class TestController {
	
	private static final Logger log = LoggerFactory.getLogger(TestController.class);
	
	/**
	 * hession接口代理对象
	 */
	@Autowired
	private PersonService personService;
	
	@RequestMapping("/test")
	@ResponseBody
	public List<Person> personList(){
		List<Person> list = personService.list();
		System.out.println("远程调用接口输出");
		return list;
	}
}

 

spring 整合Hessian Hessian服务暴露和服务调用 详细教程 源码地址 源码地址 1.Hessian使用的介绍 Hessian是一个轻量级的RPC框架,基于HTTP协议 1.1 服务端配置 三部曲 通过springMVC的DispatherServlet控制Hessian服务接口的URL访问路径 即web.xml配置 新建Hessian服务 例如:DemoService 和实现类 DemoServiceImpl 配置Hessian服务... 阅读详情

相关推荐

Hessian远程服务调用与Spring整合实战教程

Hessian 是由 Caucho Technology 开发的一种基于 HTTP 协议的轻量级二进制 RPC 协议,专为 Java 平台设计。它通过简洁的二进制编码实现高效的远程方法调用,支持跨语言通信(如 PHP、Python 等),适用于分布式系统中的服务间通信。相比传统的 RMI(Remote Method Invocation)和 SOAP(Simple Object Access Protocol),Hessian 具有以下显著优势:特性HessianRMI。

weixin_36427956的博客 668

HessianServiceExporter

使用HessianServiceExporter提供bean服务 根据上面的描述,必须提供remoting-servlet.xml文件。通常,在remoting-servlet.xml文件里定义Hessian服务即可。Spring使用HessianServiceExporter,将一个常规bean导出成Hessian服务。类似于RmiServiceExporter,HessianServic...

wsq198760的专栏 986

SpringMVC整合Hessian简单案例

SpringMVC整合Hessian的简单案例,使用Maven管理,idea工具开发,案例中配置了两个接口的服务发布

基于 Hessian 通信的客户端和服务端的实现

目录 一RPC 是什么 二 Hessian 是什么 三 服务端实现 3.1 创建 Hessian 接口 3.2 创建 Hessian 接口的实现类 3.3配置 Hessian 服务端接口服务 四 客户端实现 4.1 客户端引入 jar 包依赖,客户端实现。 4.2 客户端调用 一RPC 是什么 RPC,Remote Procedure Call,顾名思义就...

javaTalk 886

微信抢红包神器自动抢软件

微信抢红包神器自动抢软件

weixin_44006731的博客 8081

ADS 2024实战:手把手教你搞定2.3-3.5GHz宽带Doherty功放仿真与版图(附源文件)

本文详细解析了在ADS 2024环境中实现2.3-3.5GHz宽带Doherty功放的全流程设计,包括仿真与版图实现。从软件环境搭建、器件模型导入到核心电路设计、匹配网络优化,再到系统集成与版图生成,提供了实战技巧和关键参数设置。特别针对5G通信和卫星应用中的高效率需求,展示了如何通过ADS 2024的新功能提升设计效率。

weixin_42639246的博客 462

hessian无法获取连接_SpringBoot整合Hessian

Hessian是一个轻量级的remoting on http框架(远程调用框架),采用的是Binary RPC协议(二进制远程调用协议),和我们在web工程中常用的webservice比较类似,不过是个比较轻量级的框架,还有一点不一样的是webserce服务端和客户端何意用不同的框架,例如服务端用CXF,客户端用Axis。Hessian不行,调用方和被调用方必须都是Hessian。Hessian可...

weixin_29699041的博客 435

nrf52840的uart0与uart1双串口使用

nrf52840的uart0与uart1双串口使用 项目原使用nrf52832,后面由于项目需要用到双串口,改用nrf52840,官方的例程没看到使用uart1的,找遍全网都没找到uart1的使用资料,有些不负责任的网文居然说40也只有一个uart,吓得俺赶紧又查看了一次datesheet,O得K、木鸭梨 SDK代码uart驱动中,搜索到uart1的驱动部分,说明官方驱动有uart1支持的 自己动手,丰衣足食吧,下面以nRF5_SDK_17.0.0_9d13099版本,在examples\ble_per

chhen168的博客 5626

hessian与spring的完美结合(使用spring注解自动注入bean)

1.什么是Hessian Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能.相比WebService,Hessian更简单、快捷。< xmlnamespace prefix ="o" ns ="urn:schemas-microsoft-com:office:office" /> 我们可以从hessian的定义中得到两个信息:

robbinBlog 2441

【华为OD技术面试手撕真题】1、长度最小的子数组 | 手撕真题+思路参考+代码解析(C & C++ & Java & Python & JS)(三种解法)

【华为OD面试手撕真题】长度最小的子数组,本专栏更新每年华为OD机试的高频手撕代码题,每个题目都会使用五种语言进行解答(C & C++& Java & Python & JS),思路分析都非常详细, 实现最低的时间复杂度和高通过率,每个解题思路超过百字,内含各个编程语言的八股文面试题,欢迎大家订阅学习, 代码可以直接运行使用,全网限时最低价,持续更新

KJ.JK 1万+

【JAVA】海康威视门禁机ISAPI接口开发,人脸上传更新接口

本文实现了一个HTTP工具类HTTPClientUtil,提供GET/POST/PUT/DELETE请求方法,支持摘要认证。工具类封装了Apache HttpClient,设置连接超时、最大连接数等参数,通过DeviceInfoDTO传递设备IP、端口和认证信息。文中还展示了两个应用示例:userInfoAdd()用于添加人员信息,FaceDataRecordAdd()用于添加人脸数据,均通过POST请求与设备ISAPI接口交互。该工具类简化了HTTP请求处理,支持设备管理系统的集成开发。

qq_27246521的博客 590

hessian远程调用及spring中使用hessian

hessian远程调用及spring中使用hessian官方文档: 使用方法:http://hessian.caucho.com/#TheServiceAPI 序列化协议:http://hessian.caucho.com/doc/hessian-serialization.htmlhessian远程调用接口API:public interface BasicAPI { public Str

zhanlanmg的专栏 1493

通信算法之267 : DJI无人机 云哨 DroneID 640ms

消费级无人机可以用于高级航拍、物流和人道主义救援等等。但是其广泛使用给安全、安保和隐私带来了许多风险。例如,攻击方可能会使用无人机进行监视、运输非法物品,或通过侵入机场上方的封闭空域造成经济损失。为了防止恶意使用,无人机制造商采用多种对策来强制安全可靠地使用无人机,例如对速度和高度施加软件限制,或使用地理围栏实施禁飞区。作为对传统对策的补充,市场领导者大疆(DJI)为无人机实施了一种称为 DroneID 的跟踪协议,该协议旨在将无人机及其操作员的位置传输给授权实体,例如执法部门或关键基础设施的运营商。

leegang12的专栏 3310

Springboot + hessian 实现远程调用

1.创建两个maven工程,pom.xml配置公共部分如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelV

北尘 1145

Java全栈:电影数据检索与推荐系统实战

全文检索个性化推荐数据缓存容器化部署通过这个项目,我们不仅实践了Java全栈开发的各项技术,还接触了推荐系统的核心算法实现。用户历史行为数据物品特征数据上下文信息实时反馈算法的准确性推荐的多样性系统的实时性冷启动问题性能优化效果评估VIEW, // 浏览CLICK, // 点击SEARCH, // 搜索RATE, // 评分COMMENT, // 评论SHARE, // 分享WATCH_TIME, // 观看时长。

exlink2012的专栏 892

【人工智能时代】- 一键部署本地AI大模型

Ollama是一个开源项目,致力于简化大型语言模型(LLM)的本地部署过程。它允许用户在自己的硬件上运行和测试最新的语言模型,无需依赖云服务。Ollama提供了一个类似于OpenAI的API接口,使得开发者可以轻松地在自己的应用程序中集成大型语言模型。此外,Ollama WebUI为用户提供了一个友好的界面,用于管理和与模型进行交互。

xiaoli8748的专栏 2400

springboot + hessian

一、hessianserver 1.pom.xml添加hessian依赖 <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.38</version> </dependency> 2.实现service接口,方便发布服务 @Service public class

qq_41482600的博客 1321

STM32F407中文手册

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

Hessian简单demo

//提供服务    1 服务端创建一个接口并实现服务端的接口,客户端也得有这接口类public interface MyHessian {     public String sayHello(); }服务端接口实现类,客户端并不需要public class HessianImpl implements MyHessian {@Override public String sayHello() {...

Killer的博客 398

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

java hessian 原理,hessian简单原理及实现例子–学习 | 学步园

Hessian是一个轻量级的remoting on http工具,使用简单的方法提供了RMI(Remote Method Invocation,远程方法调用)的功能。采用的是二进制RPC(Remote Procedure Call Protocol,远程过程调用协议)协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。在进行基于Hessian的项目开发时,应当注意以下几点:▲JAVA服务器...

weixin_42478330的博客 1190

spring hessian的使用

ITestService接口 package com.yydone.service; public interface ITestService { public String say(); public String doSomething(); }  TestService实现 package com.yydone.service.impl; impor...

代码之路 298

Hessian基本篇

Spring + Hessian  背景;  优点:【摘自网上】hessian类似于Webservice,但是它不使用soap协议,它把协议报文封装到http封包中,通过HTTP信道传输。是一种高效简洁的远程调用框架,它采用的是二进制RPC协议(Binary),具有轻量、传输量小、平台无关的特点,特别适合于目前网络带宽比较小的手机网络应用项目。Hessian是通过servlet提供远程服务,完

psiitoy的专栏 721

Spring2.5远程调用Hessian的例子

我的apache_2.0.63+3个tomcat-6.0.18做好集成,并且配置好负载均衡。现在我使用Spring2.5来实现远程调用给你举个例子。1.服务端创建一个web工程。服务端的类:package cn.edu.zju.cmj.service.pojo;import java.io.Serializable;/** * 普通实体类 * @author cmj * *

jimmee的专栏 1740

Hessian解析及应用

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能。 相比WebService,Hessian更简单、快捷。------来自百度百科。         看官网简介吧:http://hessian.caucho.com/index.xtp         The Hessian binary web service protocol make

可口可乐的博客 1808

使用PHPHessian调用Java Spring Hessian暴露服务­

Java 部分:­1.写Spring服务接口以及实现类,这里暂且叫为TadgetManager,TadgetManagerImpl。这些都是我自己实现的暴露­­TadgetManager:­ 2.配置spring mvc和spring hessian组件,配置使用还是比较方便。暴露java服务:­1.       spring 配置文件 tadgets-se

suiyuan0808的专栏 1882

spring整合hessian学习笔记

     最近项目需要用到一些我之前没有接触过的技术点,比如hessian,apache mina, osgi等等。。。这些一步一步学习。     今天花了一点时间学习了hessian。作一下笔记。。hessian用于远程调用,跟之前使用过的rmi差不多。web.xml:     com.winking.hessian.test.BasicImpl:实现类     hes

nick许赟钦的专栏 1015

hessian-spring简单应用

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

weixin_33994444的博客 97
上一篇: 实时显示从file输入框中打开的图片C:\fakepath路径错误等问题
下一篇: java中时间的运算方式
Array*
博客等级 码龄9年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值