Bom dia,
Estou seguindo a aposta FJ-28
e estou no capitulo 14
Quando Busca a Imagem e aperto em Enviar, ele da erro
[quote]HTTP Status 404 - /compras/produtos/1/imagem
type Status report
message /compras/produtos/1/imagem
description The requested resource (/compras/produtos/1/imagem) is not available.[/quote]
e no console só aparece isso
12:00:48,109 DEBUG [VRaptor ] VRaptor ended the request
12:00:48,172 DEBUG [VRaptor ] VRaptor received a new request
12:00:48,182 DEBUG [DefaultRequestExecution] executing stack DefaultRequestExecution
12:00:48,193 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:00:48,193 DEBUG [DefaultResourceTranslator] trying to access /produtos/imagens/fundo_carrinho.gif
12:00:48,193 DEBUG [VRaptor ] VRaptor ended the request
12:00:55,932 DEBUG [VRaptor ] VRaptor received a new request
12:00:55,940 DEBUG [DefaultRequestExecution] executing stack DefaultRequestExecution
12:00:55,945 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor MultipartInterceptor
12:00:55,960 DEBUG [MultipartInterceptor] Trying to parse multipart request.
12:00:55,994 DEBUG [MultipartInterceptor] Using repository [C:\Users\SUPERV~1\AppData\Local\Temp] for file upload
12:00:56,031 DEBUG [MultipartInterceptor] Found [1] attributes in the multipart form submission. Parsing them.
12:00:56,056 DEBUG [VRaptorRequest ] Setting imagem with [14881.jpg]
12:00:56,057 DEBUG [MultipartItemsProcessor] Uploaded file: imagem with [uploadedFile uploadedCompleteName=14881.jpg uploadedName=14881.jpg contentType=image/jpeg]
12:00:56,076 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:00:56,076 DEBUG [DefaultResourceTranslator] trying to access /produtos/1/imagem
12:00:56,077 DEBUG [VRaptor ] VRaptor ended the request
Aqui esta o codigo do .jsp
<form action="<c:url value="/produtos/${produto.id}/imagem"/>" method="POST" enctype="multipart/form-data">
<fieldset>
<legend> Update de Imagem </legend>
<input type="file" name="imagem" />
<button type="submit">Enviar</button>
</fieldset>
</form>
e aqui meu ImagensController
package br.com.projeto.compras.controller;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;
import static org.hamcrest.Matchers.startsWith;
import java.io.File;
import javax.annotation.Resource;
import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
import br.com.caelum.vraptor.validator.Validations;
import br.com.caelum.vraptor.view.Results;
import br.com.projeto.compras.imagens.Imagens;
import br.com.projeto.compras.modelo.Produto;
@Resource
public class ImagensController {
private final Validator validator;
private final Imagens imagens;
private final Result result;
public ImagensController(Validator validator, Imagens imagens, Result result) {
System.out.println("Chegou");
this.validator = validator;
this.imagens = imagens;
this.result = result;
}
@Post @Path("/produtos/{produto.id}/imagem")
public void update(Produto produto, final UploadedFile imagem){
System.out.println("teste");
validator.checking(new Validations(){{
if(that(imagem,is(notNullValue()),"imagem","imagem.nula")){
that(imagem.getContentType(), startsWith("image"),"imagem","nao.eh.imagem");
}
}});
validator.onErrorUse(Results.logic()).redirectTo(ProdutosController.class).edita(produto.getId());
imagens.salva(imagem,produto);
result.redirectTo(ProdutosController.class).edita(produto.getId());
}
@Get @Path("/produtos/{produto.id}/imagem")
public File download(Produto produto){
System.out.println("Chegou");
return imagens.mostra(produto);
}
}
Porem ele nao chega nele
Alguem pode me ajudar?