我必须通过rest服务发送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";


除此方法外,类中包含此方法的所有内容都可以使用。

最佳答案

RestEasy不知道是谁将您的ByteArrayOutputStream转换为可以通过HTTP发送的内容。阅读RESTEasy Content Marshalling,然后使用其他内容类型和/或使用自动处理的其他数据类型和/或编写内容编组提供程序来处理ByteArrayOutStream。

关于java - 通过REST服务发送ByteArrayOutputStream时出现NoMessageBodyWriterFoundFailure,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7204052/

10-09 02:12