Можно ли опубликовать форму переменной длины с файлом в спокойном веб-сервисе? - PullRequest
1 голос
/ 27 мая 2011

Я пытаюсь создать спокойный веб-сервис, который будет отправлять данные из формы по электронной почте. Форма может иметь переменное количество полей и будет включать файл. Я попытался использовать 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. Можно ли что-то сделать в этом направлении или мне нужно будет создать отдельный сервис для обработки файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...