Доступ к частям запроса 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.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);
}
}