2016-06-09 1 views
0

Я пытаюсь реализовать поддержку аннотаций FormParam для легкого движка jax-rs. Там я хочу поддержать FormParam("") File типа реализации услуг с многочастными/form-даннымиJaxRS ParamConverter для java.io.File

Согласно JAX-RS SPEC существует ParamConverterProvider и ParamConverter интерфейсов для целей конвертации. Но метод принимает строку.

@Override 
public Object fromString(String s) { 
    // 
} 

Это хороший подход к использованию этого файла? Если нет, то какой должен быть лучший подход. На данный момент я не использую никаких преобразователей для java.io.File, но просто разбираю их как есть.

+0

'@ FormParam' для' приложения/х-WWW-форм-urlencoded' данных, что является только ASCII символ, который на уровне приложения является строкой. Вот почему он допускает только String. Преобразователь param используется только для аннотаций '@ XxxParam', все из которых могут содержать только строки в значениях, например. Заголовки, строки запроса, кодированные данные URL-формы. –

+0

Что именно вы пытаетесь выполнить? Ваш вопрос не очень понятен, как то, что вы хотите совершить. –

+0

Если вы пытаетесь использовать многопользовательский режим, просто используйте многостраничную функцию, специфичную для вашей реализации JAX-RS. Вам не нужно пытаться создавать свою десериализацию. Если вы просто хотите принять один файл, вы используете 'application/octet-stream' как тип содержимого, и вы можете принимать' File', 'InputStream' или' byte [] 'уже из коробки –

ответ

0

Я думаю, что вы загружаете файл Использование @FormDataParam

@FormDataParam("file") InputStream file, 
@FormDataParam("file") FormDataContentDisposition fileDisposition 

FileUpload with JaxRs См