Java 使用Rest模板将多部分文件发布到Rest服务

Java 使用Rest模板将多部分文件发布到Rest服务,java,spring,multipartform-data,Java,Spring,Multipartform Data,我正在使用Spring3和RestTemplate。我基本上有两个应用程序,其中一个必须将值发布到另一个应用程序。通过rest模板 当要发布的值是字符串时,它可以完美地工作,但是当我必须发布混合和复杂的参数(如多部分文件)时,我会得到一个转换器异常 举个例子,我有: App1-后置控制器: @RequestMapping(method = RequestMethod.POST) public String processSubmit(@ModelAttribute UploadDTO p

我正在使用Spring3和RestTemplate。我基本上有两个应用程序,其中一个必须将值发布到另一个应用程序。通过rest模板

当要发布的值是字符串时,它可以完美地工作,但是当我必须发布混合和复杂的参数(如多部分文件)时,我会得到一个转换器异常

举个例子,我有:

App1-后置控制器:

@RequestMapping(method = RequestMethod.POST)
    public String processSubmit(@ModelAttribute UploadDTO pUploadDTO, BindingResult pResult) throws URISyntaxException, IOException {
        URI uri = new URI("http://localhost:8080/app2/file/receiver");
        MultiValueMap<String, Object> mvm = new LinkedMultiValueMap<String, Object>();
        mvm.add("param1", "TestParameter");
        mvm.add("file", pUploadDTO.getFile()); // MultipartFile
        Map result = restTemplate.postForObject(uri, mvm, Map.class);
        return "redirect:postupload";
    }
我得到以下错误

org.springframework.http.converter.HttpMessageNotWritableException: Could not write request: no suitable HttpMessageConverter found for request type [org.springframework.web.multipart.commons.CommonsMultipartFile]
    at org.springframework.http.converter.FormHttpMessageConverter.writePart(FormHttpMessageConverter.java:292)
    at org.springframework.http.converter.FormHttpMessageConverter.writeParts(FormHttpMessageConverter.java:252)
    at org.springframework.http.converter.FormHttpMessageConverter.writeMultipart(FormHttpMessageConverter.java:242)
    at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:194)
    at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:1)
    at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:588)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:436)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:415)
    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:294)
    at com.yoostar.admintool.web.UploadTestController.create(UploadTestController.java:86)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

你试着用这里的答案来解决它吗?你试着用这里的答案来解决它吗?
org.springframework.http.converter.HttpMessageNotWritableException: Could not write request: no suitable HttpMessageConverter found for request type [org.springframework.web.multipart.commons.CommonsMultipartFile]
    at org.springframework.http.converter.FormHttpMessageConverter.writePart(FormHttpMessageConverter.java:292)
    at org.springframework.http.converter.FormHttpMessageConverter.writeParts(FormHttpMessageConverter.java:252)
    at org.springframework.http.converter.FormHttpMessageConverter.writeMultipart(FormHttpMessageConverter.java:242)
    at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:194)
    at org.springframework.http.converter.FormHttpMessageConverter.write(FormHttpMessageConverter.java:1)
    at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:588)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:436)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:415)
    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:294)
    at com.yoostar.admintool.web.UploadTestController.create(UploadTestController.java:86)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)