dubbo上传文件

在使用dubbo过程中碰到了需要上传图片这样的需求,而dubbo协议适合于小数据量大并发的服务调用,像上传文件这种需求推荐使用hessian协议。下面记录使用hessian协议爆露服务中出现的问题。
1.引入hessian的jar

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

2.在web.xml中增加servlet配置

<servlet>
         <servlet-name>dubbo</servlet-name>
         <servlet-class>com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>
         <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
             <servlet-name>dubbo</servlet-name>
             <url-pattern>/*</url-pattern>
    </servlet-mapping>

3.在provider中配置hession协议

 <dubbo:protocol name="hessian" port="8080" contextpath="dubbo" server="servlet" />
 <dubbo:service interface="com.test.UploadService" ref="uploadService" protocol="hessian" />
    <bean id="uploadService" class="com.test.impl.UploadServiceImpl" />

注意我的web容器是tomcat,而且使用servlet派发请求,所以这里的port和tomcat的端口保持一直。contextpath设置的是servlet引用上下文的路径(在web.xml中的配置的)。

4.在consumer端配置没有特殊的地方,除了引用dubbo的jar,还有引用hessian的jar

5.启动tomcat加载项目。在这个地方有个需要注意的地方,项目的访问不能带有项目名称。一般情况下配置后tomcat访问项目:http://127.0.0.1:8080/projectname,这里指的意思是把项目的访问路径配置为:http://127.0.0.1:8080 即可。

6.最好以多个InputStream而不File的形式传递参数,否则在多个应用之间中转会出现问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,114评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,773评论 19 139
  • 这是一篇反思。 放假回家一周了 我忙忙叨叨一星期 搬家 收拾屋子 姥爷病了 姥姥也感冒了 其实每天都是妈妈在忙忙碌...
    cclynn阅读 4,099评论 1 0
  • 无非是不想辜负爱我的人,想给他们更好的生活。 遇到自己喜欢的人时,不会自卑,可以掷地有声地说出:“你给我爱情就好,...
    樣_12138阅读 1,365评论 5 1
  • 犹唱当年昆明曲,相逢不复旧人情。 长思何意山关寄,故乡明月照心惜。
    木土有阿杜阅读 1,560评论 1 1