[Resolvido]Tratar erro no Vraptor (DownLoad)

8 respostas
S

Oi pessoal,
tenho um método que me retorno um arquivo no Vraptor, mas como faço pra enviar uma msg caso o arquivo não exista?
segue código abaixo:

@Path("/geradorDeDocumentos/carregaFiltroJson")
	public File carregaFiltroJson(String caminhoDocumento){
		File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
		if (file != null){
			return file;
		}else{
			return null;
		}
	}

teria que ser algo do tipo, mas o java não permite… :):

@Path("/geradorDeDocumentos/carregaFiltroJson")
	public File carregaFiltroJson(String caminhoDocumento){
		File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
		if (file != null){
			return file;
		}else{
			result.use(ExtJSJson.class).from("Arquivo inexistente.").success(false).serialize();
		}
	}

Alguém poderia me ajudar?

Desde já, Obrigado.

8 Respostas

worldsoft

Sandro Mueller:
Oi pessoal,
tenho um método que me retorno um arquivo no Vraptor, mas como faço pra enviar uma msg caso o arquivo não exista?
segue código abaixo:

@Path("/geradorDeDocumentos/carregaFiltroJson")
	public File carregaFiltroJson(String caminhoDocumento){
		File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
		if (file != null){
			return file;
		}else{
			return null;
		}
	}

teria que ser algo do tipo, mas o java não permite… :):

@Path("/geradorDeDocumentos/carregaFiltroJson")
	public File carregaFiltroJson(String caminhoDocumento){
		File file = this.geraDocService.carregaFiltroJson(caminhoDocumento);
		if (file != null){
			return file;
		}else{
			result.use(ExtJSJson.class).from("Arquivo inexistente.").success(false).serialize();
		}
	}

Alguém poderia me ajudar?

Desde já, Obrigado.

Não sei se seria o correto a fazer, mais você já olhou sobre os Validator do Vraptor, talvez possa te ajudar.

Lucas_Cavalcanti

vc pode usar o validator e retornar null, que o vraptor vai usar o outro resultado ao invés do download.

S

Oi Lucas, o add do Validator aceita somente a Interface Message, eu tenho que implementar esta interface?

Lucas_Cavalcanti

vc pode usar:

validator.add(new ValidatorMessage("Minha mensagem", "campo"));

http://vraptor.caelum.com.br/documentacao/validacao/

S

Lucas Cavalcanti:
vc pode usar:

validator.add(new ValidatorMessage("Minha mensagem", "campo"));

http://vraptor.caelum.com.br/documentacao/validacao/

pois é eu tinha visto na documentação, mas se eu fizer assim pede pra mim fazer um cast pra Message.

Fiz conforme abaixo pra dar certo, mas não gostei da classe aninhada…

validator.add(new Message() {
				public String getMessage() {
					
					return "teste mes";
				}
				public String getCategory() {
					return "teste cat";
				}
			});
			validator.onErrorUse(ExtJSJson.class).from("Arquivo não encontrado").success(false).serialize();
			return file;
Lucas_Cavalcanti

tem que importar o ValidationMessage do VRaptor, deveria funcionar de boa

Lucas_Cavalcanti

em todo caso vc pode usar o result direto, sem validator:

if (file != null) return file;
else {
   result.use(ExtJSJson.class)....;
   return null;
}

talvez fique mais simples assim.

S

Lucas Cavalcanti:
em todo caso vc pode usar o result direto, sem validator:

if (file != null) return file;
else {
   result.use(ExtJSJson.class)....;
   return null;
}

talvez fique mais simples assim.

funcionou… Obrigado.

Criado 2 de abril de 2012
Ultima resposta 2 de abr. de 2012
Respostas 8
Participantes 3