Каковы встроенные классы @Provider в Resteasy?

#resteasy

#resteasy

Вопрос:

Документация для переключателя resteasy.use.builtin.providers конфигурации гласит:

Следует ли регистрировать встроенные классы @Provider по умолчанию.

Я установил для этого значение false, чтобы использовать свой собственный формат (GWT) JSON, но хотел бы знать, чего мне не хватает или есть ли кто-нибудь, кого я не должен исключать.

Итак, каковы встроенные классы @Provider в Resteasy или как я могу их найти?

Ответ №1:

Я не знаю документации для этого. Лучшим способом может быть поиск в источниках.

Если вы используете только resteasy-jaxrs, вы можете найти этих поставщиков в master-branch:

 * org.jboss.resteasy.client.exception.mapper.ApacheHttpClient4ExceptionMapper
* org.jboss.resteasy.core.AcceptHeaderByFileSuffixFilter
* org.jboss.resteasy.plugins.interceptors.encoding.AcceptEncodingGZIPFilter
* org.jboss.resteasy.plugins.interceptors.encoding.AcceptEncodingGZIPInterceptor
* org.jboss.resteasy.plugins.interceptors.encoding.GZIPDecodingInterceptor
* org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor
* org.jboss.resteasy.plugins.providers.DataSourceProvider
* org.jboss.resteasy.plugins.providers.DefaultTextPlain
* org.jboss.resteasy.plugins.providers.DocumentProvider
* org.jboss.resteasy.plugins.providers.FileProvider
* org.jboss.resteasy.plugins.providers.FormUrlEncodedProvider
* org.jboss.resteasy.plugins.providers.IIOImageProvider
* org.jboss.resteasy.plugins.providers.InputStreamProvider
* org.jboss.resteasy.plugins.providers.JaxrsFormProvider
* org.jboss.resteasy.plugins.providers.ReaderProvider
* org.jboss.resteasy.plugins.providers.SerializableProvider
* org.jboss.resteasy.plugins.providers.SourceProvider
* org.jboss.resteasy.plugins.providers.StringTextStar
 

Это классы @Provider , аннотированные с. В основном они зарегистрированы в META-INF/services/ javax.ws.rs.ext.Providers .

Но я не уверен, почему вы хотите отключить их. AFAIK, если вы зарегистрируете @Provider which @Produces(MediaType.APPLICATION_JSON) или @Consumes(MediaType.APPLICATION_JSON) значение по умолчанию, оно будет проигнорировано.

Комментарии:

1. Спасибо, я попробую это. Проблема в том, что у меня разные типы носителей для каждой сущности, такие как application/vnd.kornell.v1.entity.person json, не знаю, как это будет работать. Чтобы сохранить исходных поставщиков, я в конечном итоге явно отключил поставщиков json в jboss-deployment-structure.xml