我试图使用InMemoryClientExecutor打电话给我本地JVM其返回javax.ws.rs.core.Response对象服务。我能得到这个工作,但仅通过指定字符串类型,像这样:JAX-RS(高枕无忧)InMemoryClientExecutor /的ClientRequest异常
String response = new ClientRequest("/myService", executor)
.get(String.class)
.getEntity();
由于服务的签名是像这样:
@GET
@Path("/myService")
public Response getSomeData(@Form MyFormBean bean) {
//...blah...
}
不过,我想获得的实际响应(Response)回来,这样我可以得到实体出来,在我的新的“聚合”响应返回的对象。当我刚刚返回字符串杰克逊分析器不认为这是JSON,只是一个普通的字符串,因此它确实像编码线闯入\ n等事情
每当我做这样的事情:
String response = new ClientRequest("/myService",executor)
.get(Response.class)
.getEntity();
,甚至这只是得到普通请求对象:
String response = new ClientRequest("/myService", executor).get().getEntity();
我得到以下异常:
Exception Occured: org.jboss.resteasy.client.ClientResponseFailure: Unable to find a MessageBodyReader of content-type application/json and type null
at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:523)
at org.jboss.resteasy.client.core.BaseClientResponse.createResponseFailure(BaseClientResponse.java:514)
at org.jboss.resteasy.client.core.BaseClientResponse.readFrom(BaseClientResponse.java:415)
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:377)
at org.jboss.resteasy.client.core.BaseClientResponse.getEntity(BaseClientResponse.java:338)
还存在更进一步的是:
Servlet.service() for servlet Resteasy threw exception: org.jboss.resteasy.spi.LoggableFailure: Unable to find contextual data of type: javax.servlet.http.HttpServletRequest
at org.jboss.resteasy.core.ContextParameterInjector$GenericDelegatingProxy.invoke(ContextParameterInjector.java:56)
at $Proxy210.getScheme(Unknown Source)
我在哪里出错了?