Доступ к частям запроса multipart / form-data post В веб-службе JAVA REST

у меня есть составная форма, которая должна загружать файл, а также некоторые параметры. Выглядит это так:

<form id="upload" action="http://localhost:9998/test" method="post" enctype="multipart/form-data">
    <input name="inputfile" type="file" size="50" accept="application/octet-stream">
    <input name="someparameter" type="text" size="10">
    <input type="submit" value="Go!">
</form>

веб-служба выглядит следующим образом:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(@FormParam(value="someparameter") String param) {
        System.out.println(param);
    }
}

при отправке формы значение для "someparameter" всегда сообщается как null, хотя в форме я ввел значение.

мои вопросы:

  1. что не так с вышеуказанным кодом?
  2. как получить доступ к файлу, который передается с форма?

Я использую Джерси 1.10.

1 ответов


Ok, после нескольких часов поиска в гугле я нашел ошибку в своем коде.

вы должны использовать аннотацию @FormDataParam вместо @FormParam.

полученный код выглядит следующим образом:

@Path("/test")
public class ServiceInterface {
    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public void execute(
                   @FormDataParam("someparameter") String param
                   @FormDataParam("inputfile") File inputfile
                       )
    {
        System.out.println(param);
    }
}