用于Java类Foo、Java类Foo和MIME媒体类型text/html的消息体读取器;未找到字符集=utf-8
我正在使用Jersey服务呼叫一个服务,我遇到了这个异常。谢谢你的帮助。这个问题是间歇性的用于Java类Foo、Java类Foo和MIME媒体类型text/html的消息体读取器;未找到字符集=utf-8,java,jersey,jersey-client,Java,Jersey,Jersey Client,我正在使用Jersey服务呼叫一个服务,我遇到了这个异常。谢谢你的帮助。这个问题是间歇性的 [|SEVERE|oracle-glassfish3.1.2|com.sun.jersey.api.client.ClientResponse|_ThreadID=99;_ThreadName=quartzScheduler_Worker-5;|A message body reader for Java class com.xxx.ResonseObjectView, and Java type cla
[|SEVERE|oracle-glassfish3.1.2|com.sun.jersey.api.client.ClientResponse|_ThreadID=99;_ThreadName=quartzScheduler_Worker-5;|A message body reader for Java class com.xxx.ResonseObjectView, and Java type class com.xxx.ResonseObjectView, and MIME media type text/html; charset=utf-8 was not found|#]
[|SEVERE|oracle-glassfish3.1.2|com.sun.jersey.api.client.ClientResponse|_ThreadID=99;_ThreadName=quartzScheduler_Worker-5;|The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.MimeMultipartProvider
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.moxy.MoxyMessageBodyWorker
com.sun.jersey.moxy.MoxyListMessageBodyWorker
|#]
对响应POJO使用@XmlRootElement
这就是服务的调用方式
这是使用并生成MediaType JSON的服务
我猜在错误端有一个错误,它会导致来自服务器的html错误响应。可能的内部服务器错误。我想如果你打印请求的状态,将是500。如果是这种情况,请尝试通过编写一个
exceptionapper
来调试问题,并记录错误。或者检查服务器以查看是否已记录堆栈跟踪。您当前看到的错误是客户端错误,因为它找不到html的读取器,这意味着响应类型是htmlWhy会是html如果我有@products MediaType.APPLICATION_JSON?请重新阅读我的评论。。。由于服务器生成的响应,由于未处理/未映射的异常。将响应打印为字符串。看看是什么
@XmlRootElement
public class ResponseObjectView extends BaseRestObject
@XmlRootElement
public class BaseRestObject
protected ClientResponse executeRequest( String resourceUrl, Object argument )
{
if( argument instanceof SecureToken )
{
SecureToken parameter = (SecureToken) argument ;
parameter.setSecurityToken( MD5Hash.hash( parameter.getHashableAttribute(), salt ) );
}
return this.buildWebResource( resourceUrl ).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON_TYPE ).post( ClientResponse.class, argument );
}
@POST
@Path( "/test.biws" )
@Consumes( MediaType.APPLICATION_JSON )
@Produces( { MediaType.APPLICATION_JSON } )
public ResponseObjectView request( RequestObjectView request, @Context UriInfo uriInfo )
{
................
return response;
}