`

bboss 发布和使用hessian服务方法介绍

阅读更多
hessian是一款性能非常不错的RPC通讯组件,最近抽空将bboss和hessian做了个整合,可以简单方便地将bboss ioc管理的组件直接发布为hessian服务,本文详细介绍之。
一、bboss hessian属性
bboss ioc为hessian组件定义了一组扩展属性,说明如下:
hessian:api 服务接口
hessian:servicePort 指定服务标识
				  hessian:serializable xml|bin 序列化类型,默认为bin
				  hessian:debug default false used by serializable="bin".
				  hessian:sendCollectionType used by serializable="bin". default true Set whether to send the Java collection type for each serialized collection.
				  hessian:serializerFactory used by serializable="bin".default com.caucho.hessian.io.SerializerFactory


服务定义示例:
	<property name="tokenservice" hessian:servicePort="tokenService"
	class="com.demo.common.action.TokenController" />

<property name="tokenservicebin" hessian:servicePort="tokenService" 
hessian:debug="true" hessian:sendCollectionType="true" 
hessian:serializerFactory="com.caucho.hessian.io.SerializerFactory"
	class="com.demo.common.action.TokenController" />

<property name="tokenserviceforxml" hessian:servicePort="tokenService"  
hessian:serializable="xml" 
	class="com.demo.common.action.TokenController" />


这些服务定义只需要放置在ioc配置文件中即可,通过bboss ioc容器装载和实例化

二、hessian服务部署
依托bboss ioc模块,hessian服务发布非常简单,首先配置hessian 服务dispatchservlet用来接收hessian服务调用请求:
服务名称来自请求参数的配置方法
在web.xml文件中配置HessionDispatchServlet
<servlet>
					<servlet-name>HessionRemote</servlet-name>
					<servlet-class>org.frameworkset.spi.remote.hession.HessionDispatchServlet</servlet-class>
					
				</servlet>
				<servlet-mapping>
					<servlet-name>HessionRemote</servlet-name>
					<url-pattern>/hessian</url-pattern>
				</servlet-mapping>

客户端通过以下方式传递服务名称:
String url = "http://10.25.192.142:8081/context/hessian?service=tokenService";
CommonUserManagerInf tokenService = (CommonUserManagerInf) factory.create(CommonUserManagerInf.class, url);
		Result result = tokenService.getUserByUserAccount("yinbp");


服务名称来自请求地址(restful)的配置方法
<servlet>
		<servlet-name>HessionRemote</servlet-name>
		<servlet-class>org.frameworkset.spi.remote.hession.HessionDispatchServlet</servlet-class>
		<init-param>
			<param-name>restful</param-name>
			<param-value>true</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>HessionRemote</servlet-name>
		<url-pattern>/hessian/*</url-pattern>
	</servlet-mapping>


客户端通过以下方式传递服务名称:
String url = "http://localhost/hessian/commonuserService";
		CommonUserManagerInf tokenService = (CommonUserManagerInf) factory.create(CommonUserManagerInf.class, url);
		Result result = tokenService.getUserByUserAccount("yinbp");


这样所有的bboss ioc容器中的组件(这些组件需要实现特定的服务接口)即可作为hessian服务接收客户端调用了。

三、客户端调用hessian服务
定义服务url
String url = "http://localhost:8080/context/hessian?container=bboss.hessian.mvc&containertype=mvc&service=basicservice";//指定容器标识和容器类型及服务标识
url = "http://localhost:8080/context/hessian?service=basicservice";//默认获取mvc容器中的组件
url参数说明
container:服务端ioc容器标识,一般是ioc容器根xml文件对应的类包路径,
   例如:org/frameworkset/spi/remote/hession/server/hessian-service.xml
               mvc类型容器值为bboss.hessian.mvc(也是container的默认值)
containertype: 容器类型
mvc mvc容器
simple 对应ioc容器类型为DefaultApplicationContext
    其他值 对应ioc容器类型为ApplicationContext
service:服务标识,ioc组件的名称
创建bin模式客户端代理
   
HessianProxyFactory factory = new HessianProxyFactory();
			    ServiceInf basic = (ServiceInf) factory.create(org.frameworkset.spi.remote.hession.server.ServiceInf.class, url);
			
			    System.out.println("Hello: " + basic.hello("John"));

创建xml模式客户端代理
   
BurlapProxyFactory factory = new BurlapProxyFactory();
			    ServiceInf basic = (ServiceInf) factory.create(org.frameworkset.spi.remote.hession.server.ServiceInf.class, url);
			
			    System.out.println("Hello: " + basic.hello("John"));

    通过bboss-ioc配置和获取客户端
<property name="clientservice" factory-class="com.caucho.hessian.client.HessianProxyFactory" factory-method="create">
					<construction>
						<property value="org.frameworkset.spi.remote.hession.server.ServiceInf"/>		
						<property value="http://localhost:8080/context/hessian?service=basicservice"/>	
					</construction>
				</property>

   
DefaultApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/remote/hession/client/hessian-client.xml");
				//获取客户端组件实例
				ServiceInf basic = context.getTBeanObject("clientservice", ServiceInf.class);

使用bboss工厂模式,调用HessianProxyFactory的create方法创建hessian服务客户端调用组件,同时我们可以采用bboss ioc依赖注入特征,将hessian客户端的相关参数(connectionTimeout,readTimeout等)设置到HessianProxyFactory中.
org/frameworkset/spi/remote/hession/client/hessian-client.xml

ok,bboss 发布和使用hessian服务方法就介绍到此,欢迎大家留言交流。
分享到:
评论

相关推荐

    bboss ioc配置文件中使用外部属性文件介绍

    本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...

    bboss 安全认证过滤器功能介绍

    BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...

    bboss elasticsearch介绍

    bboss es特点请访问: https://www.oschina.net/p/bboss-elastic

    bboss mvcdemo 下载地址

    在“bboss mvc开发手册.doc”中,我们可能会找到关于如何使用BBoss MVCDemo进行开发的详细指南。 首先,让我们深入了解BBoss MVCDemo的核心特性: 1. **模型(Model)**:BBoss MVCDemo支持多种数据访问方式,如JDBC...

    bboss会话共享培训文档

    bboss会话共享采用MongoDB作为存储后端,使用增量模式修改会话属性,提供高效的数据存储和访问。数据的序列化采用XML格式,目的是为了良好的可读性,并且易于监控。bboss兼容Servlet 2/3规范,能够与现有的应用系统...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    2. **bboss elasticsearch开发入门教程.wmv**: 通过实例演示,讲解如何使用BBoss进行索引操作、数据插入、查询和更新,帮助初学者快速上手。 **六、资料阅读** "说明.txt" 文件可能包含了关于这些教程的详细步骤和...

    企业级J2EE开源框架bboss

    BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...

    J2EE企业级开源框架bboss v5.0.6.8

    bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布和管理,hessian服务发布和管理等功能。另外还提供了符合中国式自由流的bboss activiti工作流...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。...通过深入学习和使用bboss-datatran,用户可以提升数据处理效率,更好地挖掘数据的价值。

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿.pptx

    Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿

    bboss+es基本操作示例.zip

    Domain Specific Language是bboss支持的一种面向领域的特定语言,允许开发者使用JSON格式定义查询和更新语句。DSL语法丰富,支持全文搜索、范围查询、多条件组合查询、聚合分析等多种功能。bboss的DSL支持使开发者...

    基于bboss新版平台项目环境搭建和代码工具使用视频教程.rar

    "基于bboss新版平台项目环境搭建和代码工具使用视频教程"提供了一套详细的指导,旨在帮助开发者快速掌握bboss新版本平台的相关操作。bboss,全称为Business Basic Open Source,是一个开源的企业级开发框架,它为...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss-plugins-kafka

    bboss-plugins项目中的Kafka插件则是为了让开发者能够在bboss框架下更便捷地集成和使用Kafka,实现消息的发布与订阅、数据的处理和传输等功能。 项目中提到了多个与Kafka相关的技术组件和概念,如nacos、log4j、...

    bboss-db-elasticsearch-tool-master_java_

    压缩包中的`db-elasticsearch-tool`可能包含了框架的核心库、示例代码、文档和配置文件,帮助用户快速理解和使用这个框架。通过阅读源码、查看示例和文档,开发人员可以深入理解BBoss-DB-Elasticsearch-Tool的工作...

    基于bboss框架的全面设计源码自动生成工具

    该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

Global site tag (gtag.js) - Google Analytics