dubbo Servlet Bridge Server时同时支持hessian和webservice

原生的bubbo在发布hessianwebservice时使用了嵌入jetty的方式开启了两个端口。 而考虑到我们实际的情况,需要使用weblogic发布,并且是使用同一个端口对外提供服务。 所以我们要扩展dubbo使其支持在同一端口同时支持两种协议。 

为了实现这个目标,作出了如下修改:

1,  增加新的ServletHttpBinder  

WebServiceDispatcherServlet  WebServiceServletHttpBinder  WebServiceServletHttpServer

2, 修改文件
/dubbo-remoting-http/src/main/resources/META-INF/dubbo/internal/com.alibaba.dubbo.remoting.http.HttpBinder,增加如下内容:
webserviceservlet=com.alibaba.dubbo.remoting.http.servlet.WebServiceServletHttpBinder

 

3 com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol.WebServiceHandler.handle方法修改的内如如下:

            if (servletController == null) {

                HttpServlet httpServlet = DispatcherServlet.getInstance()==null?WebServiceDispatcherServlet.getInstance():DispatcherServlet.getInstance(); 

 

4,spring中的配置类似如下:

<dubbo:protocol name="webservice" port="8080" server="webserviceservlet" contextpath="ServletBrige/service" />

 

5web.xml增加如下内容:

  <servlet>

    <servlet-name>dubbowebservice</servlet-name>    <servlet-class>com.alibaba.dubbo.remoting.http.servlet.WebServiceDispatcherServlet</servlet-class>

    <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

    <servlet-name>dubbowebservice</servlet-name>

    <url-pattern>/service/*</url-pattern>

  </servlet-mapping>     

源码已提交到: https://github.com/codingboyli/dubbo



转载于:https://my.oschina.net/linan/blog/516148

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值