java - ProcessingException: RESTEASY003145: 找不到内容类型 application/json 和类型接口 java.util.List 的 MessageBodyReader - 仅限 JAR
问题描述
我正在将 resteasy 客户端与 jackson 提供程序一起使用。这是 build.gradle 片段:
compile "org.jboss.resteasy:resteasy-jaxrs:3.6.2.Final"
compile "org.jboss.resteasy:resteasy-client:3.6.2.Final"
compile "org.jboss.resteasy:resteasy-jackson2-provider:3.6.2.Final"
我处理服务器响应的那一行是
(List<String>) response.readEntity(List.class)
(服务器返回 aList<String>
并且请求方法用 注释@Produces(MediaType.APPLICATION_JSON)
)
当我从 Eclipse 中运行客户端时,一切都很好,但是在我使用 gradle(任务:jar)创建一个 JAR 并启动它并执行请求之后,我得到:
javax.ws.rs.ProcessingException: RESTEASY003145: Unable to find a MessageBodyReader of content-type application/json and type interface java.util.List
at org.jboss.resteasy.core.interception.ClientReaderInterceptorContext.throwReaderNotFound(ClientReaderInterceptorContext.java:37)
at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.getReader(AbstractReaderInterceptorContext.java:80)
at org.jboss.resteasy.core.interception.AbstractReaderInterceptorContext.proceed(AbstractReaderInterceptorContext.java:53)
at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readFrom(ClientResponse.java:334)
at org.jboss.resteasy.client.jaxrs.internal.ClientResponse.readEntity(ClientResponse.java:261)
at org.jboss.resteasy.specimpl.BuiltResponse.readEntity(BuiltResponse.java:237)
... (at the line (List<String>) response.readEntity(List.class))
jar里面META-INF\services\
有2个javax.ws.rs.ext.Providers
文件:
org.jboss.resteasy.plugins.providers.DataSourceProvider
org.jboss.resteasy.plugins.providers.DocumentProvider
org.jboss.resteasy.plugins.providers.DefaultTextPlain
org.jboss.resteasy.plugins.providers.DefaultNumberWriter
org.jboss.resteasy.plugins.providers.DefaultBooleanWriter
org.jboss.resteasy.plugins.providers.StringTextStar
org.jboss.resteasy.plugins.providers.SourceProvider
org.jboss.resteasy.plugins.providers.InputStreamProvider
org.jboss.resteasy.plugins.providers.ReaderProvider
org.jboss.resteasy.plugins.providers.ByteArrayProvider
org.jboss.resteasy.plugins.providers.FormUrlEncodedProvider
org.jboss.resteasy.plugins.providers.JaxrsFormProvider
org.jboss.resteasy.plugins.providers.CompletionStageProvider
org.jboss.resteasy.plugins.providers.ReactiveStreamProvider
org.jboss.resteasy.plugins.providers.FileProvider
org.jboss.resteasy.plugins.providers.FileRangeWriter
org.jboss.resteasy.plugins.providers.StreamingOutputProvider
org.jboss.resteasy.plugins.providers.IIOImageProvider
org.jboss.resteasy.plugins.interceptors.CacheControlFeature
org.jboss.resteasy.plugins.interceptors.encoding.ClientContentEncodingAnnotationFeature
org.jboss.resteasy.plugins.interceptors.encoding.ServerContentEncodingAnnotationFeature
org.jboss.resteasy.plugins.interceptors.encoding.MessageSanitizerContainerResponseFilter
org.jboss.resteasy.plugins.providers.sse.SseEventProvider
org.jboss.resteasy.plugins.providers.sse.SseEventOutputProvider
org.jboss.resteasy.plugins.providers.sse.SseEventSinkInterceptor
和
org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider
org.jboss.resteasy.plugins.providers.jackson.UnrecognizedPropertyExceptionHandler
org.jboss.resteasy.plugins.providers.jackson.PatchMethodFilter
所以jackson2提供者似乎被列出来了。
我看过的问题:
找不到内容类型 application/json 和类型类 java.lang.String 的 MessageBodyReader
找不到内容类型 text/html 和类型接口 java.util.List 的 MessageBodyReader
我不知道问题是否出在创建jar,杰克逊提供者,resteasy的gradle任务中......
解决方案
推荐阅读
- javascript - 从iframe外部的按钮触发全屏?
- javascript - 如何根据 Angular 6 中的 Firebase 实时数据库中的键获取单个记录
- excel - Copy column (vertical) selection to reverse paste row (horizontal)
- alfresco - 如何使数字字段自动递增?
- python - 组的相关性和加入 DataFrame
- servicestack - 没有被重定向到剃刀视图,而是使用 servicestack 5.1 查看快照页面
- ios - 快速拍照时前置摄像头自动缩放
- java - JasperReportsPdfView 在我的 Spring Boot 中无法解析。
- java - 不支持 Spring Boot 安全请求方法“POST”
- angular - 等待Http调用Angular 4 ForkJoin