Desativar Upload do VRaptor 3 sem retirar commons-fileupload

8 respostas
R

Olá pessoal, tudo bem…

Será que tem como desabilitar o filter do vraptor para upload de arquivo sem precisar retirar a lib commons-fileupload?

O problema é que faço upload pelo primefaces e o vraptor esta interceptando o jsf…

Abraço…

8 Respostas

renanreismartins

vc tem vraptor e jsf juntos na mesma app? Oo tem algo estranho ai…

mas de qq maneira, vc pode desabilitar qq interceptor do vraptor extendendo e sobrescrevendo o metodo accepts para retornar false

abrasss

R

Sim tenho o JSF e vraptor no mesmo projeto…

O problema é que eu não sei exatamente qual interceptor sobrescrever…

renanreismartins

cara, não faz sentido ter os dois no mesmo projeto…

veja se não é esse: br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor.class

abrasss

Lucas_Cavalcanti

é esse interceptor mesmo…

se a url de upload não for a tratada pelo vraptor não deveria passar por ele.

R

Verdade, estou utilizando o vraptor para coisas simples que da para fazer num servlet + cdi sem problemas(é que eu gosto do vraptor sabe :D…)

O que devo fazer, implementar uma MultipartInterceptor com accepts = false?

Acho que ele pega todas as urls que tem multipart, porque só foi comentar a dependecia do vraptor no maven e o prime funcionou normalmente…

Lucas_Cavalcanti

o accepts false deve funcionar

R

Vou tentar e depois posto o resultado, obrigado por enquanto!

R
import javax.servlet.http.HttpServletRequest;

import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.http.MutableRequest;
import br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor;
import br.com.caelum.vraptor.interceptor.multipart.CommonsUploadMultipartInterceptor;
import br.com.caelum.vraptor.interceptor.multipart.MultipartConfig;
import br.com.caelum.vraptor.interceptor.multipart.ServletFileUploadCreator;
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.resource.ResourceMethod;

@Intercepts(before = ResourceLookupInterceptor.class, after = {})
@RequestScoped
public class FakeMultipartInterceptor extends CommonsUploadMultipartInterceptor {

	public FakeMultipartInterceptor(HttpServletRequest request, MutableRequest parameters, MultipartConfig cfg, Validator validator, ServletFileUploadCreator fileUploadCreator) { 
		super(request, parameters, cfg, validator, fileUploadCreator);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void intercept(InterceptorStack stack, ResourceMethod method,
			Object resourceInstance) throws InterceptionException {
		// TODO Auto-generated method stub
	}

	@Override
	public boolean accepts(ResourceMethod method) {
		// TODO Auto-generated method stub
		return false;
	}

}

Agora funcionou...

Abraços e obrigado pela ajuda...

Criado 4 de dezembro de 2012
Ultima resposta 4 de dez. de 2012
Respostas 8
Participantes 3