NoMessageBodyWriterFoundFailure при отправке ByteArrayOutputStream через службу REST - PullRequest
1 голос
/ 26 августа 2011

Мне нужно отправить 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";

Все в классе, содержащем этот метод, работает, кроме этого метода.

1 Ответ

2 голосов
/ 26 августа 2011

RestEasy не знает, кому преобразовать ваш ByteArrayOutputStream во что-то, что может быть отправлено через HTTP. Прочтите RESTEasy Content Marshalling , а затем либо используйте другой тип контента и / или используйте другой тип данных, который автоматически обрабатывается, и / или напишите поставщика сортировки контента для обработки вашего ByteArrayOutStream.

...