Java SpringRESTTemplate将大文件转发到另一个服务

Java SpringRESTTemplate将大文件转发到另一个服务,java,spring,resttemplate,Java,Spring,Resttemplate,我正在尝试使用spring的resttemplate将一个作为输入流拉入的大文件转发到另一个服务。我遵循了@artbristol在本主题中给出的答案: 看起来它正在正确地设置请求主体(使用charlesproxy获取请求)。问题是我没有正确设置标题,因为我认为我需要将内容类型设置为multipart/formdata,我在回调中添加了以下内容: request.getHeaders().setContentType( new MediaType("multipar

我正在尝试使用spring的resttemplate将一个作为输入流拉入的大文件转发到另一个服务。我遵循了@artbristol在本主题中给出的答案:

看起来它正在正确地设置请求主体(使用charlesproxy获取请求)。问题是我没有正确设置标题,因为我认为我需要将内容类型设置为multipart/formdata,我在回调中添加了以下内容:

request.getHeaders().setContentType(
                new MediaType("multipart", "form-data"));

但是在http头文件中,我仍然缺少边界,不确定如何设置边界,并且我确定我可能缺少一些其他设置。

因此我能够解决这个问题。基本上,我需要创建一个Spring消息转换器,它将接收输入流并将其写入正文。我还基本上必须使用表单消息转换器来写出响应体


因此,在restTemplate中,我调用add message converter来添加新的输入流消息转换器。在回调中,我创建了一个多值映射,它接收字符串和inputstream,并将其包装在HttpEntity周围。然后,我创建了表单消息转换器的一个新实例,并调用write、传入请求和mutlivaluemap。

问题似乎在于spark类路径中没有包含htrace-core.jar的路径: spark shell—驱动程序类路径/opt/cloudera/parcels/CDH/lib/hbase/hbase server.jar:/opt/cloudera/parcels/CDH/lib/hbase/hbase-protocol.jar:/opt/cloudera/parcels/parcels/hbase/hbase-hadoop2-compat.jar:/opt/cloudera/parcels/CDH/lib/hbase/hbase/hbase-client.jar:/opt/cloudera/parcels/lib/hbase/hbase/hbase/hbase/hbase-common.jar:/opt/cloudera/parcels/CDH/lib/hbase/lib/hbase/hbase/hbase/hbase/hbase/>
这对于spark 1.x来说似乎是新的,您的解释似乎很清楚,但是一些代码示例可能会有很大帮助。