1. 云栖社区>
  2. >
  3. 正文

dubbo-hessian协议http请求

作者:用户 来源:互联网 时间:2018-09-10 15:01:45

dubbohttp请求hessian协议

dubbo-hessian协议http请求 - 摘要: 本文讲的是dubbo-hessian协议http请求, 下面,我们的思路是,先基于Dubbo封装的Hessian协议,实现提供方服务和消费方调用服务,双方必须都使用Dubbo来开发;然后,基于Dubbo封装的Hessian协议实现提供方服务,然后服务消费方使用标准的Hessia

下面,我们的思路是,先基于Dubbo封装的Hessian协议,实现提供方服务和消费方调用服务,双方必须都使用Dubbo来开发;然后,基于Dubbo封装的Hessian协议实现提供方服务,然后服务消费方使用标准的Hessian接口来进行远程调用,分别使用Java和Python语言来实现。而且,我们实现的提供方服务通过Tomcat发布到服务注册中心。
首先,使用Java语言定义一个搜索服务的接口,代码如下所示: 1 package org.shirdrn.platform.dubbo.service.rpc.api; 2   3 public interface SolrSearchService { 4     String search(String collection, String q, String type, int start, int rows); 5 }

上面接口提供了搜索远程调用功能。

基于Dubbo的Hessian协议实现提供方服务

提供方实现基于Dubbo封装的Hessian协议,实现接口SolrSearchService,实现代码如下所示: 01 package org.shirdrn.platform.dubbo.service.rpc.server; 02   03 import java.io.IOException; 04 import java.util.HashMap; 05 import java.util.Map; 06   07 import org.apache.commons.logging.Log; 08 import org.apache.commons.logging.LogFactory; 09 import org.shirdrn.platform.dubbo.service.rpc.api.SolrSearchService; 10 import org.shirdrn.platform.dubbo.service.rpc.utils.QueryPostClient; 11 import org.springframework.context.support.ClassPathXmlApplicationContext; 12   13 public class SolrSearchServer implements SolrSearchService { 14   15     private static final Log LOG = LogFactory.getLog(SolrSearchServer.class); 16     private String baseUrl; 17     private final QueryPostClient postClient; 18     private static final Map<String, FormatHandler> handlers = new HashMap<String, FormatHandler>(0); 19     static { 20         handlers.put("xml", new FormatHandler() { 21             public String format() { 22                 return "&wt=xml"; 23             } 24         }); 25         handlers.put("json", new FormatHandler() { 26             public String format() { 27                 return "&wt=json"; 28             } 29         }); 30     } 31   32     public SolrSearchServer() { 33         super(); 34         postClient = QueryPostClient.newIndexingClient(null); 35     } 36   37     public void setBaseUrl(String baseUrl) { 38         this.baseUrl = baseUrl; 39     } 40   41     public String search(String collection, String q, String type, int start, int rows) { 42         StringBuffer url = new StringBuffer(); 43         url.append(baseUrl).append(collection).append("/select?").append(q); 44         url.append("&start=").append(start).append("&rows=").append(rows); 45         url.append(handlers.get(type.toLowerCase()).format()); 46         LOG.info("[REQ] " + url.toString()); 47         return postClient.request(url.toString()); 48     } 49   50     interface FormatHandler { 51         String format(); 52     } 53 }

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索dubbo , http请求 hessian协议 ,以便于您获取更多的相关知识。