2013-08-28 3 views
1

Я не могу загрузить загрузку на Джерси. Использование Джерси 1.9. InputStream имеет значение null, когда он попадает в эту службу. Я пробовал это как обычное представление формы и как представление AJAX с использованием плагина jQuery Form, но получаю тот же результат в любом случае. Также нет никаких исключений, что делает его еще более неприятным.Загрузка файла с Джерси Не работает

HTML Форма

<form id="docCategoryForm" name="docCategoryForm" action="someAction" method="post" enctype="multipart/form-data"> 
Document 
<input type="file" name="fileupload_name" id="fileupload_name" > 
<button id="submitButton" type="submit" title="Select to search">Submit</button> 
</form> 

POM

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.9</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>com.sun.jersey.contribs</groupId> 
    <artifactId>jersey-multipart</artifactId> 
    <version>1.9</version> 
    <scope>provided</scope> 
</dependency> 

Иерархия зависимостей в Eclipse, показывает, что mimepull.jar 1,6 также получать тянут в.

Служба REST

@ResourceFilters({RequestLoggingResourceFilter.class}) 
@POST 
@Path(PATH_UPLOAD) 
@Consumes(MediaType.MULTIPART_FORM_DATA) 
@Produces(MediaType.APPLICATION_JSON) 
public MyResponseObject uploadDocument(@FormDataParam("fileupload_name") InputStream file) { 
    // Some code 
} 

Если я добавлю @FormDataParam ("fileupload_name") FormDataContentDisposition fileDetail, я получаю это просто отлично, но InputStream по-прежнему является нулевым.

Вот запрос после попытки загрузки простого текстового файла. Выглядит хорошо.

* Server in-bound request 
> POST http://localhost:7001/webmodule/app/contmang/page/docCategory 
/uploadDocument 
> Host: localhost:7001 
> Connection: keep-alive 
> Content-Length: 209 
> Accept: */* 
> Origin: http://localhost:7001 
> X-Requested-With: XMLHttpRequest 
> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36 
> Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryl0Uv1KBFoVtOpHto 
> Referer: http://localhost:7001/webmodule/app/contmang/page/docCategory 
> Accept-Encoding: gzip,deflate,sdch 
> Accept-Language: en-US,en;q=0.8 
> Cookie: JSESSIONID_HEARS=yWHQSpFbZnh1Jfp6hmn4xmfyxxTpybnvTTxsTykyqXzQyt207wym!-153888503 
> Entity:------WebKitFormBoundaryl0Uv1KBFoVtOpHto 
Content-Disposition: form-data; name="fileupload_name"; filename="test.txt" 
Content-Type: text/plain 

Hello, World!! 

------WebKitFormBoundaryl0Uv1KBFoVtOpHto-- 

ответ

1

Мысль, котор я должен принести закрытие к этому одно. Проблема оказалась очень тупой. Так или иначе, был импортирован неправильный класс InputStream. Как только я изменил его на java.io.InputStream, он работал так, как ожидалось.

Смежные вопросы