Я пытаюсь создать спокойный веб-сервис, который будет отправлять данные из формы по электронной почте. Форма может иметь переменное количество полей и будет включать файл. Я попытался использовать MultivaluedMap для хранения записей формы из-за переменного количества полей, но если я добавлю FormParam для файла, MultivaluedMap больше не будет получать записи.
Вот код, который я пытался сделать:
@POST
@Path("/formEmailerAttachment/{formGuid}")
public Response emailFormAttachment(@PathParam("Guid") long configId, MultivaluedMap<String, String> values, @FormParam("file") File file){
Response.ResponseBuilder builder = null;
Form form = new Form();
form.setValues(values);
try{
if (values.isEmpty())
throw new NullPointerException();
builder = Response.ok();
Iterator iterator = form.getValues().entrySet().iterator();
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("<h3>Success</h3><br>file = " + file.getName());
while (iterator.hasNext()){
Map.Entry pairs = (Map.Entry)iterator.next();
sBuilder.append(pairs.getKey() + " = " + pairs.getValue() + "<br>");
}
builder.entity(sBuilder.toString());
} catch(Exception e) {
builder = Response.serverError();
builder.entity("<h3>Some Error Occured</h3><br>" + e.getMessage());
}
return builder.build();
}
Код приводит к ошибке NullPointerError. Можно ли что-то сделать в этом направлении или мне нужно будет создать отдельный сервис для обработки файла?