解决dubbo上传文件失败问题

原因:dubbo协议不支持InputStream、File对象。

  • 方式1-使用hessian协议
  1. 在消费者(consumer)添加hessian依赖

<dependency>

<groupId>com.cauchogroupId>

<artifactId>hessianartifactId>

<version>4.0.7version>

dependency>

  1. 在服务提供者(provider)端添加hessian、jetty依赖、添加hessian协议

<dependency>

<groupId>com.cauchogroupId>

<artifactId>hessianartifactId>

<version>4.0.7version>

dependency>

<dependency>

<groupId>org.mortbay.jettygroupId>

<artifactId>jettyartifactId>

<version>6.1.26version>

dependency>

修改applicationContext-dubbo-provider.xml

解决dubbo上传文件失败问题_第1张图片

默认容器使用jetty,如果指定为serlvet,产生问题:由于当前项目是java project,不是web项目,如果是servlet,当前项目启动会报错。

  • 方式3-交inputStream转换为byte[]
  1. 工具

解决dubbo上传文件失败问题_第2张图片

  1. 修改消费者(consumer)端

FileUploadController.java

  1. 修改服务提供者(provider)端

FileUploadServiceImpl.java

 

你可能感兴趣的:(分布式)