Erro onErrorSendBadRequest + I18nMessage + Ajax - Vraptor 4

Boa noite pessoal,

Estou tendo um problema com o método onErrorSendBadRequest, quando utilizo mensagem através do I18nMessage, quando realizo uma chamada ao método do meu controller via ajax o vraptor serialize o retorno em um json porém não apresenta a mensagem vinculada a chave no arquivo message.properties, apresenta a chave conforme segue imagem abaixo:

Retorno requisição ajax:

{
"errors": [
    {
        "message": "login.invalido",
        "severity": "ERROR"
    }
]

}

Meu validator:

	public void validate(Usuario usuario) {
		// Validar se login e senha foram informados
		validator.addIf(usuario.getLogin() == null, new I18nMessage("login", "login.null"));
		validator.addIf(usuario.getSenha() == null, new I18nMessage("login", "senha.null"));
		validator.addIf(!usuarioDao.isExisteLogin(usuario), new I18nMessage("login", "login.invalido"));
		validator.addIf(usuarioDao.isExisteLogin(usuario) && usuarioDao.isEmpty(usuario), new I18nMessage("login", "senha.invalida"));
		if (!method.containsAnnotation(Public.class)) {
			validator.validate(usuario);
			validator.addIf(usuarioDao.isExisteLogin(usuario),
					new I18nMessage("login", "usuario.login.existe"));
			validator.addIf(usuarioDao.isExisteEmail(usuario),
					new I18nMessage("email", "usuario.email.existe"));	
		}
}

Controller:

@Public
@Post("/autentica")
@Consumes(value = "application/json", options = WithoutRoot.class)
public void autentica(Usuario usuario) {
	validator.validate(usuario);
	validator.onErrorSendBadRequest();
	usuarioSession.setUsuario(usuarioDao.getUsuario(usuario));
	result.use(Results.json())
		.withoutRoot()
		.from(new Success("login", "Login realizado com sucesso!", "/"))
		.serialize();
}

Observação: As validações do BeanValidations são serializadas corretamente.

Boa tarde,

Já consegui resolver criando a classe abaixo:

import java.lang.reflect.Type;

import javax.annotation.Priority;
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Alternative;
import javax.interceptor.Interceptor;

import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;

import br.com.caelum.vraptor.validator.Message;


@Dependent
@Alternative
@Priority(Interceptor.Priority.LIBRARY_BEFORE)
public class CustomMessageGsonConverter implements JsonSerializer<Message>{

	@Override
	public JsonElement serialize(Message message, Type type, JsonSerializationContext jsonSerializationContext) {
		String json = "{"
						+ "'category' : " + message.getCategory() + ", "
						+ "'message' : " + message.getMessage() + ", "
						+ "'severity' : " + message.getSeverity() + 
					"}";
		return new JsonPrimitive(json);
	}
}

Caso alguém enfrente a mesma dificuldade ai está a solução.