我必须通过休息服务发送ByteArrayOutputStream,我得到了这个例外:
org.jboss.resteasy.client.ClientResponseFailure: Unable to find a MessageBodyReader of content-type text/html;charset="iso-8859-1" and type class java.io.ByteArrayOutputStream
我不明白为什么,我必须让它发挥作用。
这是我的休息服务:
@POST
@Path("/exported")
@Consumes(MediaType.APPLICATION_XML)
public ByteArrayOutputStream getExported(Wrapper wrapper) {
ByteArrayOutputStream os = null;
os = new ByteArrayOutputStream();
try {
os.write("TTT".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
return os;
}
这是我的客户:
ClientRequest request = new ClientRequest("http://localhost:8081/restws/rest/rrr/exported");
request.accept(MediaType.APPLICATION_XML);
request.body(MediaType.APPLICATION_XML, new Wrapper(
listOf Objects));
ClientResponse<ByteArrayOutputStream> response = request
.post(ByteArrayOutputStream.class);
ByteArrayOutputStream os = response.getEntity();
return "success";
包含此方法的类中的所有内容都有效,但此方法除外。
答案 0 :(得分:2)
RestEasy不知道将ByteArrayOutputStream转换为可以通过HTTP发送的内容。阅读RESTEasy Content Marshalling,然后使用不同的内容类型和/或使用自动处理的不同数据类型和/或编写内容编组提供程序来处理ByteArrayOutStream。