0

Я довольно новичок в webservice. Я использую Spring mvc и webservice для загрузки файла на сервер. В контроллере ярового я пытался добавить параметры в многозначном карте как один ниже404 ошибка при вызове метода в webservice

MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>(); 
formData.add("caption", "Test Caption"); 
formData.add("file",new FileSystemResource("/home/mytxt"); 
formData.add("jsonData",imageJson); 

моего HTTPHeader и httpentity выглядит как один ниже

HttpHeaders requestHeaders = new HttpHeaders(); 
requestHeaders.setContentType(MediaType.MULTIPART_FORM_DATA); 
final HttpEntity<MultiValueMap<String,Object>> requestEntity = new HttpEntity<>(
        formData, requestHeaders); 

в стороне обслуживания мой метод выглядит

@Path("/addImage") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response copyFromLocal(
      @FormDataParam("file") InputStream uploadedInputStream) throws IOException 
{  
    return null; 
} 

до этого момента все это хорошо, но когда я использую метод, как показано ниже, этот метод не вызывается

@POST 
@Path("/addImage") 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
public Response copyFromLocal(
     @FormDataParam("file") InputStream uploadedInputStream, 
     @FormDataParam("file") FormDataContentDisposition content) 
     throws IOException 
{ 
} 

код клиента

MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>(); 
formData.add("caption", "Test Caption"); 
formData.add("file",new FileSystemResource("/home/txt")); 
formData.add("jsonData",imageJson); 
HttpHeaders requestHeaders = new HttpHeaders(); 
requestHeaders.setContentType(MediaType.MULTIPART_FORM_DATA); 
final HttpEntity<MultiValueMap<String,Object>> requestEntity = new HttpEntity<>(
        formData, requestHeaders); 
responseFromService = this.baseAdapter.makeRequest(HttpMethod.POST, 
        requestEntity, relativeURL, String.class,true); 

BaseAdapter класс использует Spring RestTemplate, чтобы отправить URL.

Я хочу, чтобы все параметры, присутствующие на карте контроллера, передавались методу на стороне обслуживания. Может ли кто-нибудь помочь мне в решении проблемы? Любая помощь приветствуется.

ответ

0

Я вижу, что вы указали две аннотации @FormDataParam("file") по двум различным аргументам, я думаю, что она должна применяться только к одному.

@POST 
    @Path("/addImage") 
    @Consumes(MediaType.MULTIPART_FORM_DATA) 
    public Response copyFromLocal(
      InputStream uploadedInputStream, 
      @FormDataParam("file") FormDataContentDisposition content) 
      throws IOException { 

    } 
+0

Пробовал один вы told.getting «запрос POST для„Ошибка http://192.168.12.123:9090/services/image/addImage“привела к 404 (страница не найдена), вызывая обработчик ошибок» – user1585111

+0

орг .springframework.web.client.HttpClientErrorException: 404 Не найдено – user1585111

+0

вы можете опубликовать свой код на стороне клиента для доступа к этой веб-службе? – RE350