demoiselle / framework

Repositório principal contendo o Core e Extensions: JPA, Security, WS
https://demoiselle.org
127 stars 77 forks source link

[Demoiselle3] Erro ao levantar uma exceção DemoiselleRestException #83

Open benitofe opened 7 years ago

benitofe commented 7 years ago

Olá, estamos implementando um serviço REST que consome um arquivo (tipo "MULTIPART_FORM_DATA"). E tentar ao lançar uma exceção DemoiselleRestException, por algum motivo de alguma validação por exemplo, é apresentado o seguinte erro:

"org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure: Could not find MessageBodyWriter for response object of type: java.util.ArrayList of media type: multipart/form-data"

Exemplo:

@POST

@Path("/data/")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response getDATA(MultipartFormDataInput arquivo) {       

        Data data = ExemploBC.getDATA();
            if (data == null){
                 throw new DemoiselleRestException("erro no arquivo", 412);
            }
        return ok().entity(data).build();
}

OBS: Quando a aplicação consome um JSON esse erro não é apresentado. A exceção DemoiselleRestException é lançada normalmente.

botelhojp commented 7 years ago

O upload funciona? O erro acontece no momento de enviar o Response? Pergunto, pois fiz uma implementação de upload parecida, no meu caso funcionou, mas meu response era simples, apenas retornava o código 200.

benitofe commented 7 years ago

O Upload funciona. O erro acontece quando é lançada a exceção do Demoiselle Rest quando consome um MULTIPART_FORM_DATA, nessa linha: "throw new DemoiselleRestException("erro no arquivo", 412);"

Entretanto, apenas quando eu troco para outro tipo, por exemplo, JSON, o retorno da linha acima é correto. É retornado um JSON com o erro da validação, no caso do exemplo: "erro no arquivo".

thiagosoares commented 7 years ago

Me parece ausência dos providers dos jackson. São eles que serializam as respostas convertendo para json.

Caso você esteja utilizando o jboss/wildfly, eles estão lá mas será necessário configurar esse dependência no jboss-deployments.xml.

On Jul 3, 2017 20:03, "benitofe" notifications@github.com wrote:

O Upload funciona. O erro acontece quando é lançada a exceção do Demoiselle Rest quando consome um MULTIPART_FORM_DATA, nessa linha:

"throw new DemoiselleRestException("erro no arquivo", 412);"

Entretanto, apenas quando eu troco para outro tipo, por exemplo, JSON, o retorno da linha acima é correto. É retornado um JSON com o erro da validação, no caso do exemplo: "erro no arquivo".

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/demoiselle/framework/issues/83#issuecomment-312747144, or mute the thread https://github.com/notifications/unsubscribe-auth/AAxSZJ6CLeV2fySrQjMZYYXQOkM1jAAgks5sKXMvgaJpZM4OMojX .