- 浏览: 695084 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍。
1.概述
bboss提供cxf webservice(基于cxf 2.7.6),hessian(基于4.0.7),http(基于bboss mvc)三种服务的一次性便捷发布机制。
2.服务定义
在bboss ioc配置文件中将组件同时配置为webservice、hessian、http三种服务:
从配置中可以知道:
com.demo.common.action.TokenController是服务组件实现类,首先通过name="/token/*.freepage" 将其配置为一个mvc控制器,以便接受http请求方式的服务调用,通过ws:servicePort="tokenService" 将其发布为一个cxf webservice服务,通过hessian:servicePort="tokenService"将其发布为一个hessian服务。hessian:servicePort是可选的配置,bboss 默认将所有的组件都发布为hessian服务,默认采用name属性作为hessian服务的唯一标识,无需额外配置,这里指定hessian:servicePort是由于name属性对应的值/token/*.freepage作为mvc请求的地址匹配模式,也可以作为hessian服务的标识,但是作为hessian服务的位置地址标识不太友好,所以通过hessian:servicePort指定了hessian的标识为tokenService。
3.服务接口定义
为了让TokenController正确地发布为webservice和hessian服务,还必须定义一个接口TokenService:
接口方法和接口上添加了webservice服务相关的注解,要实现接口的服务组件:
服务方法返回参数前都有@ResponseBody 注解,这个是用来标注mvc框架将返回的String数据作为响应返回到客户端。
4.服务的三种客户端调用方法
定义好调用参数
hessian服务方式申请token(hessian提供的标准调用模式)
webservice方式申请token(cxf提供的服务调用模式)
http请求方式申请令牌
5.HttpReqeust组件介绍
HttpReqeust是bboss最新版本3.8.0中提供的http服务组件,专门用来执行http请求,并将处理结果返回给客户端,提供了以下主要方法:
1.概述
bboss提供cxf webservice(基于cxf 2.7.6),hessian(基于4.0.7),http(基于bboss mvc)三种服务的一次性便捷发布机制。
2.服务定义
在bboss ioc配置文件中将组件同时配置为webservice、hessian、http三种服务:
<properties> <!-- 生成令牌控制配置文件 author:biaoping.yin CopyRight:bboss Date:2011.4.13 --> <property name="/token/*.freepage" ws:servicePort="tokenService" hessian:servicePort="tokenService" class="com.demo.common.action.TokenController" /> </properties>
从配置中可以知道:
com.demo.common.action.TokenController是服务组件实现类,首先通过name="/token/*.freepage" 将其配置为一个mvc控制器,以便接受http请求方式的服务调用,通过ws:servicePort="tokenService" 将其发布为一个cxf webservice服务,通过hessian:servicePort="tokenService"将其发布为一个hessian服务。hessian:servicePort是可选的配置,bboss 默认将所有的组件都发布为hessian服务,默认采用name属性作为hessian服务的唯一标识,无需额外配置,这里指定hessian:servicePort是由于name属性对应的值/token/*.freepage作为mvc请求的地址匹配模式,也可以作为hessian服务的标识,但是作为hessian服务的位置地址标识不太友好,所以通过hessian:servicePort指定了hessian的标识为tokenService。
3.服务接口定义
为了让TokenController正确地发布为webservice和hessian服务,还必须定义一个接口TokenService:
import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService(name = "TokenService", targetNamespace = "com.demo.common.action.TokenService") public interface TokenService { public @WebResult(name = "authTempToken", partName = "partAuthTempToken") String genAuthTempToken( @WebParam(name = "appid", partName = "partAppid") String appid, @WebParam(name = "secret", partName = "partSecret") String secret, @WebParam(name = "account", partName = "partAccount") String account) throws Exception; public @WebResult(name = "dualToken", partName = "partDualToken") String genDualToken( @WebParam(name = "appid", partName = "partAppid") String appid, @WebParam(name = "secret", partName = "partSecret") String secret, @WebParam(name = "account", partName = "partAccount") String account) throws Exception; public @WebResult(name = "publicKey", partName = "partPublicKey") String getPublicKey( @WebParam(name = "appid", partName = "partAppid") String appid, @WebParam(name = "secret", partName = "partSecret") String secret) throws Exception; public @WebResult(name = "tempToken", partName = "partTempToken") String genTempToken() throws Exception; }
接口方法和接口上添加了webservice服务相关的注解,要实现接口的服务组件:
@WebService(name="TokenService",targetNamespace="com.demo.common.action.TokenService") public class TokenController implements TokenService { /** * 获取令牌请求 * @param request * @return */ public @ResponseBody String getToken(HttpServletRequest request) { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { return memTokenManager.buildDToken(request); } else { return null; } } public @ResponseBody String genTempToken() throws Exception { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { return memTokenManager.genTempToken(); } else { return null; } } /** * 获取令牌请求 * @param request * @return * @throws Exception */ public @ResponseBody String genAuthTempToken(String appid,String secret,String account) throws Exception { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { return memTokenManager.genAuthTempToken(appid, secret, account); } else { return null; } } /** * 获取令牌请求 * @param request * @return * @throws Exception */ public @ResponseBody String genDualToken(String appid,String secret,String account) throws Exception { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { long dualtime = 30l*24l*60l*60l*1000l; return memTokenManager.genDualToken(appid, secret, account,dualtime); } else { return null; } } /** * 获取应用公钥 * @param appid * @param secret * @return * @throws Exception */ public @ResponseBody String getPublicKey(String appid,String secret) throws Exception { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { return memTokenManager.getPublicKey(appid, secret); } else { return null; } } /** * 获取令牌请求 * http://localhost:8081/demo/token/getParameterToken.freepage * @param request * @return */ public @ResponseBody String getParameterToken(HttpServletRequest request) { MemTokenManager memTokenManager = org.frameworkset.web.token.MemTokenManagerFactory.getMemTokenManagerNoexception(); if(memTokenManager != null)//如果开启令牌机制就会存在memTokenManager对象,否则不存在 { return memTokenManager.buildParameterDToken(request); } else { return null; } }
服务方法返回参数前都有@ResponseBody 注解,这个是用来标注mvc框架将返回的String数据作为响应返回到客户端。
4.服务的三种客户端调用方法
定义好调用参数
String appid = "appid"; String secret = "xxxxxxxxxxxxxxxxxxxxxx"; String account = "yinbp";
hessian服务方式申请token(hessian提供的标准调用模式)
HessianProxyFactory factory = new HessianProxyFactory(); //String url = "http://10.25.192.142:8081/context/hessian?service=tokenService"; String url = "http://192.168.1.101:8080"+request.getContextPath()+"/hessian?service=tokenService"; TokenService tokenService = (TokenService) factory.create(TokenService.class, url); String token = tokenService.genAuthTempToken(appid, secret, account); //token = tokenService.genDualToken(appid, secret, account);
webservice方式申请token(cxf提供的服务调用模式)
url = "http://192.168.1.101:8080/demo/cxfservices/tokenService"; JaxWsProxyFactoryBean WSServiceClientFactory = new JaxWsProxyFactoryBean(); WSServiceClientFactory.setAddress(url); WSServiceClientFactory.setServiceClass(TokenService.class); tokenService = (TokenService)WSServiceClientFactory.create(); token = tokenService.genAuthTempToken(appid, secret, account); //token = tokenService.genDualToken(appid, secret, account);
http请求方式申请令牌
url = "http://192.168.1.101:8080/demo/token/genAuthTempToken.freepage?appid="+appid + "&secret="+secret + "&account="+account; //url = "http://10.25.192.142:8081/demo/token/genDualToken.freepage?appid="+appid + "&secret="+secret + "&account="+account; token = org.frameworkset.spi.remote.http.HttpReqeust.httpPostforString(url);
5.HttpReqeust组件介绍
HttpReqeust是bboss最新版本3.8.0中提供的http服务组件,专门用来执行http请求,并将处理结果返回给客户端,提供了以下主要方法:
//发送请求,参数url对应服务地址,返回String类型的响应 public static String httpPostforString(String url) throws Exception //发送请求,参数url对应服务地址,params中存放了请求的参数对,返回String类型的响应 public static String httpPostforString(String url,Map<String, Object> params) throws Exception //发送请求,参数url对应服务地址,参数params中存放了请求的参数对,参数files中存放了要上传到服务端的文件信息,返回String类型的响应 public static String httpPostforString(String url,Map<String, Object> params, Map<String, File> files) throws Exception
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 910bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss ioc快速入门教程
2017-08-13 11:28 1275bboss是一个非常不错的ioc框架,功能类似于spr ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 742bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss ioc配置文件中使用外部属性文件介绍
2016-09-20 11:35 1143bboss ioc配置文件中使用外部属性文件介绍 与spri ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1264bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 569bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 915首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss ioc提供的组件初始化工具类介绍
2016-03-18 16:17 737bboss ioc提供的组件初始化工具类介绍 bboss i ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5947解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
扩展bboss ioc语法实现自定义的ioc依赖注入功能
2015-01-20 23:08 1328bboss ioc配置语法简洁而严谨,提供了强大的依赖注入功能 ... -
bboss webservice引擎使用方法
2014-11-16 11:23 923bboss webservice引擎使用方法,请参考文档:bb ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1047@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1340本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1190bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1156在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss序列化cglib代理对象方法介绍
2014-06-22 15:14 1159本文介绍bboss序列化cglib代理对象方法。经过cglib ... -
bboss自定义类对象序列化机制介绍
2014-05-26 23:32 1471bboss自定义类对象序列 ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6144bboss session共享使用方法 ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1088bboss发布apache cxf 2.7.6服务和定义客户端 ...
相关推荐
可以配置多组服务集群地址,每一组地址清单支持的配置格式: ip:port(默认http协议) 多个地址用逗号分隔 6.服务安全认证(配置basic账号和口令) 7.主备路由/异地灾备特色 负载均衡器主备功能开发,如果主节点全部...
8.ioc / mvc组件装配部署和服务发布配置文件。 9.国际化属性文件和国际化配置 10.readme.txt代码和配置文件集成配置说明 生成的所有文件存放在服务器上,代码生成器会提供打包下载功能 项目中包含的两个eclipse工程...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
BBoss安全认证过滤器是Java Web开发中一种用于实现用户身份验证和权限控制的重要组件。在Web应用程序中,过滤器(Filter)是Servlet规范的一部分,它允许开发者在请求到达目标Servlet或JSP之前进行预处理,以及在...
BBoss(全称为bbossgroups)是一个专为企业级J2EE应用设计的开源框架,它为Java开发者提供了一系列强大的工具和服务,以简化Web应用程序的开发过程。该框架旨在提高开发效率,降低维护成本,同时保持高度的灵活性和...
BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...
通过这些库的组合,BBoss Elasticsearch提供了一种高效且灵活的方式来批量和定时将数据库数据导入Elasticsearch,减轻了开发者手动处理大量数据的负担。开发者可以通过配置和编写少量代码,实现复杂的数据迁移任务,...
bboss是一个j2ee开源框架,为企业级应用开发提供一站式解决方案,并能有效地支撑移动应用开发。bboss功能涵盖ioc,mvc,jsp自定义标签库,持久层,全局事务托管,安全认证,SSO,web会话共享,cxfwebservice服务发布...
本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...
本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...
BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的开发框架,它简化了Elasticsearch在企业级应用中的集成和开发工作。 **一、Elasticsearch简介** Elasticsearch 以其分布式、RESTful 风格的 API 而...
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
BBoss-DB-Elasticsearch-Tool就是这样一个工具,它为开发人员提供了一种统一的方式来处理不同类型的数据库,包括关系型数据库和NoSQL数据库,尤其是Elasticsearch这种流行的全文搜索引擎。 在Java中,传统的JDBC...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
BBoss,全称为“Business Basic Operation Support”,是一个基于Java的企业级开发框架,它提供了丰富的组件和工具,使得开发者能够快速地进行业务逻辑的构建。而EasyUI则是一个基于jQuery的前端UI库,它为开发者...
springboot集成ElasticsearchBboss调用Elasticsearch的案例分享
**bboss+es基本操作示例** ...总之,bboss+es基本操作示例是学习和实践Elasticsearch与Java集成的优秀资源,通过这个示例,开发者可以快速掌握bboss框架下的DSL操作,为实际项目开发打下坚实基础。
**bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...