Vraptor 3.3.1 chamando Recurso duas vezes

10 respostas
boneazul

Olá pessoal estou com um problema estranho aqui …

Tenho uma aplicação básica aqui em que comecei a sofrer com alguns NPE e fui ver o motivo e vi que está havendo duplicidade de chamada no recurso mesmo eu pedido 1 vez só…
ta meio estranho isso nao tem motivo pra ser chamado duas vezes …

por exemplo se eu chamo a url http://localhost:8081/projeto/logpanel/list

ele imprime um sysout que coloquei em um interceptor que o accepts é sempre true

Requested url =>http://localhost:8081/smartoffice/logpanel/list
Requested url =>http://localhost:8081/smartoffice/logpanel/list

está passando duas vezes pelo mesmo interceptor , o que pode estar errado ??

em todo caso vou postar o interceptor

@Intercepts
public class ErrorInterceptor implements Interceptor {
	private Result result;
	private HttpServletRequest request;
	private EmailPanelDao daoEmailPanel;
	private LogPanelDao daoLogPanel;
	private ConfiguracaoDao daoConfiguracao;
	private static Logger logger = Logger.getLogger(ErrorInterceptor.class);

	public ErrorInterceptor(Result result, HttpServletRequest request,
			LogPanelDao daoLogPanel, ConfiguracaoDao daoConfiguracao,
			EmailPanelDao daoEmailPanel) {
		this.request = request;
		this.result = result;
		this.daoEmailPanel = daoEmailPanel;
		this.daoLogPanel = daoLogPanel;
		this.daoConfiguracao = daoConfiguracao;
	}

	public boolean accepts(ResourceMethod method) {
		return true;
	}

	@SuppressWarnings("unchecked")
	public void intercept(InterceptorStack stack, ResourceMethod method,
			Object resourceInstance) {
		
		System.out.println("Requested url =>" + request.getRequestURL());
		
		try {
			stack.next(method, resourceInstance);
		} catch (InterceptionException i) {
			if (i.getMessage().contains("ClientAbortException"))
				logger.warn("ClientAbortException => "
						+ request.getRequestURL() + " => " + i.getMessage());
			else {
				PrintWriter p = null;
				try {
					StringWriter w = new StringWriter();
					p = new PrintWriter(w);
					i.printStackTrace(p);
					String requestedUrl = request.getRequestURL().toString();
					String exception = w.toString();
					StringBuilder params = new StringBuilder("{");
					Enumeration<String> en = request.getParameterNames();
					while (en.hasMoreElements()) {
						String paramName = en.nextElement();
						params.append("<br/> " + paramName + " : "
								+ request.getParameter(paramName) + ",");
					}
					params.append("}");

					daoLogPanel.saveLog(exception, requestedUrl,
							params.toString());

					daoEmailPanel.sendMail(daoConfiguracao.getVariableValue(
							"SYSTEM", "EMAIL_SUPPORT"),
							"ERRO EXECUÇÃO", "URL : "
									+ requestedUrl + "<hr/>" + exception
									+ "<hr/>" + params);

				} catch (Exception e1) {
					e1.printStackTrace();
				} finally {
					if (p != null)
						p.close();
				}
				result.use(Results.logic()).redirectTo(GeneralController.class)
						.error();
			}

		}
	}
}

10 Respostas

G

O fato dele imprimir o log duas vezes pode ser que seu logger esteja declarando o appender duas vezes. Coloca um sysout para ver se passa duas vezes, ou até um breakpoint.

Outra coisa que você pode verificar é se o filter do VRaptor está sendo declarado duas vezes no web.xml. Também pode acontecer de você estar em um container com Servlet 3, que já registra o filter, e você declara-o novamente no web.xml.

boneazul

garcia-jj:
O fato dele imprimir o log duas vezes pode ser que seu logger esteja declarando o appender duas vezes. Coloca um sysout para ver se passa duas vezes, ou até um breakpoint.

Outra coisa que você pode verificar é se o filter do VRaptor está sendo declarado duas vezes no web.xml. Também pode acontecer de você estar em um container com Servlet 3, que já registra o filter, e você declara-o novamente no web.xml.

Garcia já é um sysout está passando duas vezes mesmo…

public void intercept(InterceptorStack stack, ResourceMethod method,  
            Object resourceInstance) {  
          
        System.out.println("Requested url =>" + request.getRequestURL());  
        .
        .
        .
}

meu web.xml não tem chamada em duplicidade do filter

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5" id="projeto">
	<display-name>projeto</display-name>
	
	<context-param>  
        <param-name>br.com.caelum.vraptor.encoding</param-name>  
        <param-value>ISO-8859-1</param-value>  
    </context-param>
    
    <context-param>
    	<param-name>br.com.caelum.vraptor.packages</param-name>
    	<param-value>br.com.caelum.vraptor.converter.l10n</param-value>
	</context-param>
    
    
    <context-param>
	    <param-name>br.com.caelum.vraptor.provider</param-name>
	    <param-value>br.com.caelum.vraptor.util.hibernate.HibernateCustomProvider</param-value>
	</context-param>

	<filter>
		<filter-name>vraptor</filter-name>
		<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>vraptor</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
	
		<context-param>
		<param-name>br.com.jslsolucoes.tagria.SKIN</param-name>
		<param-value>cloud</param-value>
	</context-param>
	
	<context-param>
		<param-name>br.com.jslsolucoes.tagria.CACHE</param-name>
		<param-value>true</param-value>
	</context-param>
	
	<servlet>
		<servlet-name>tagria</servlet-name>
		<servlet-class>br.com.jslsolucoes.tagria.Tagria</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>tagria</servlet-name>
		<url-pattern>/tagria/*</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>

E o tomcat que uso é versao 6.0.29 que não implementa servlet 3 ainda … se nao me engano isso só implementado nas versões 7.x

Creio não estar fazendo nada de errado ? alguma ideia ??

Lucas_Cavalcanti

o que tem dentro da lógica http://localhost:8081/smartoffice/logpanel/list?

pode ser só a parte do vraptor (que envolve o result)

boneazul

Lucas Cavalcanti:
o que tem dentro da lógica http://localhost:8081/smartoffice/logpanel/list?

pode ser só a parte do vraptor (que envolve o result)

Bom vamos lá…

Meu controller

package br.com.webtia.smartoffice.controllers;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.view.Results;
import br.com.webtia.smartoffice.annotations.Paginated;
import br.com.webtia.smartoffice.annotations.PutAccessInView;
import br.com.webtia.smartoffice.annotations.Rules;
import br.com.webtia.smartoffice.annotations.VerifyAccess;
import br.com.webtia.smartoffice.daos.LogPanelDao;

@Resource
@Path("logpanel")
public class LogPanelController {

	private LogPanelDao daoLogPanel;

	private Result result;

	public LogPanelController(Result result, LogPanelDao daoLogPanel) {
		this.result = result;
		this.daoLogPanel = daoLogPanel;
	}

	@VerifyAccess
	@Paginated
	@PutAccessInView(urls = { @Rules(var = "canDelete", url = "/logpanel/delete") })
	public void list() {
		this.result.include("totalResults", daoLogPanel.count());
		this.result.include("logPanelList", daoLogPanel.listAll(
				(Integer) result.included().get("start"), (Integer) result
						.included().get("resultsPerPage")));
	}

	@VerifyAccess
	public void delete(String ids) {
		daoLogPanel.deactive(ids);
		result.use(Results.nothing());
	}

}
Lucas_Cavalcanti

liga o log de debug do VRaptor, e posta aqui o que aparece na requisição que roda o interceptor duas vezes

boneazul

esse é o debug que sai quando peço a url

19:26:04,814 DEBUG VRaptor:82 - VRaptor received a new request
19:26:04,835 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:04,835 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_glass_100_e4f1fb_1x400.png
19:26:04,838 DEBUG VRaptor:96 - VRaptor ended the request
19:26:04,839 DEBUG VRaptor:82 - VRaptor received a new request
19:26:04,846 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:04,847 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-icons_2694e8_256x240.png
19:26:04,848 DEBUG VRaptor:96 - VRaptor ended the request
19:26:06,466 DEBUG VRaptor:82 - VRaptor received a new request
19:26:06,484 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:06,484 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-circle.png
19:26:06,487 DEBUG VRaptor:96 - VRaptor ended the request
19:26:06,488 DEBUG VRaptor:82 - VRaptor received a new request
19:26:06,497 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:06,497 DEBUG DefaultResourceTranslator:51 - trying to access /logpanel/list
19:26:06,497 DEBUG DefaultResourceTranslator:61 - found resource [DefaultResourceMethod: LogPanelController.listLogPanelController.list()]
19:26:06,499 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor InstantiateInterceptor
19:26:06,510 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExceptionHandlerInterceptor
19:26:06,524 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor FlashInterceptor
19:26:06,527 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor HibernateTransactionInterceptor
19:26:06,533 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ErrorInterceptor
Requested url => http://localhost:8081/smartoffice/logpanel/list
19:26:06,535 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AuthenticationInterceptor
19:26:06,547 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInterceptor
19:26:06,596 DEBUG LazyInterceptorHandler:58 - Invoking interceptor PaginatorInterceptor
19:26:06,603 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInViewInterceptor
19:26:06,613 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExecuteMethodInterceptor
19:26:06,613 DEBUG ExecuteMethodInterceptor:60 - Invoking LogPanelController.list()
19:26:06,628 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ForwardToDefaultViewInterceptor
19:26:06,628 DEBUG ForwardToDefaultViewInterceptor:59 - forwarding to the dafault page for this logic
19:26:06,633 DEBUG DefaultPageResult:66 - forwarding to /WEB-INF/jsp/logPanel/list.jsp
19:26:06,634 DEBUG DefaultStaticContentHandler:63 - Deferring request to container: /smartoffice/WEB-INF/jsp/logPanel/list.jsp 
19:26:07,331 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,362 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,367 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,371 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,371 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/css/theme/__THEME__/jquery.ui.all.compressed.css
19:26:07,373 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,375 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,376 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/js/jquery.all.min.js
19:26:07,407 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,643 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,651 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,651 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-bar.png
19:26:07,652 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,653 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,661 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,662 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,662 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_diagonals-thick_15_444444_40x40.png
19:26:07,663 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,664 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,675 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,676 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_highlight-soft_100_deedf7_1x100.png
19:26:07,677 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,677 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_highlight-hard_100_f2f5f7_1x100.png
19:26:07,677 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,677 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,679 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,690 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,690 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-text-background.png
19:26:07,691 DEBUG VRaptor:96 - VRaptor ended the request
19:26:07,738 DEBUG VRaptor:82 - VRaptor received a new request
19:26:07,747 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:07,747 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-icons_3d80b3_256x240.png
19:26:07,748 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,667 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,670 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,677 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,677 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_glass_80_d7ebf9_1x400.png
19:26:08,678 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,682 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,682 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-icons_72a7cf_256x240.png
19:26:08,687 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,752 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,760 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,760 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_highlight-soft_25_ffef8f_1x100.png
19:26:08,761 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,792 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,800 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,800 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-circle.png
19:26:08,802 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,880 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,888 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,889 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-bar.png
19:26:08,890 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,952 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,954 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,963 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,963 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-bg_highlight-soft_25_ffef8f_1x100.png
19:26:08,965 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,965 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,965 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-circle.png
19:26:08,965 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,966 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,966 DEBUG VRaptor:82 - VRaptor received a new request
19:26:08,975 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,975 DEBUG DefaultResourceTranslator:51 - trying to access /logpanel/list
19:26:08,975 DEBUG DefaultResourceTranslator:61 - found resource [DefaultResourceMethod: LogPanelController.listLogPanelController.list()]
19:26:08,977 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor InstantiateInterceptor
19:26:08,977 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:08,978 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-icons_72a7cf_256x240.png
19:26:08,979 DEBUG VRaptor:96 - VRaptor ended the request
19:26:08,989 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExceptionHandlerInterceptor
19:26:09,007 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor FlashInterceptor
19:26:09,010 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor HibernateTransactionInterceptor
19:26:09,018 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ErrorInterceptor
Requested url => http://localhost:8081/smartoffice/logpanel/list
19:26:09,022 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AuthenticationInterceptor
19:26:09,031 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInterceptor
19:26:09,122 DEBUG LazyInterceptorHandler:58 - Invoking interceptor PaginatorInterceptor
19:26:09,125 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInViewInterceptor
19:26:09,131 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExecuteMethodInterceptor
19:26:09,132 DEBUG ExecuteMethodInterceptor:60 - Invoking LogPanelController.list()
19:26:09,143 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ForwardToDefaultViewInterceptor
19:26:09,143 DEBUG ForwardToDefaultViewInterceptor:59 - forwarding to the dafault page for this logic
19:26:09,148 DEBUG DefaultPageResult:66 - forwarding to /WEB-INF/jsp/logPanel/list.jsp
19:26:09,149 DEBUG DefaultStaticContentHandler:63 - Deferring request to container: /smartoffice/WEB-INF/jsp/logPanel/list.jsp 
19:26:09,305 DEBUG VRaptor:82 - VRaptor received a new request
19:26:09,313 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor
19:26:09,313 DEBUG DefaultResourceTranslator:51 - trying to access /tagria/images/theme/__THEME__/ui-loading-bar.png
19:26:09,315 DEBUG VRaptor:96 - VRaptor ended the request
19:26:09,322 DEBUG VRaptor:96 - VRaptor ended the request

Aproveitando o assunto com faço para o vraptor ignorar as url “/tagria/*”

Lucas_Cavalcanti

se vc perceber, em uma request:

19:26:06,488 DEBUG VRaptor:82 - VRaptor received a new request  
19:26:06,497 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor  
19:26:06,497 DEBUG DefaultResourceTranslator:51 - trying to access /logpanel/list  
19:26:06,497 DEBUG DefaultResourceTranslator:61 - found resource [DefaultResourceMethod: LogPanelController.listLogPanelController.list()]  
19:26:06,499 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor InstantiateInterceptor  
19:26:06,510 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExceptionHandlerInterceptor  
19:26:06,524 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor FlashInterceptor  
19:26:06,527 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor HibernateTransactionInterceptor  
19:26:06,533 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ErrorInterceptor  
Requested url => http://localhost:8081/smartoffice/logpanel/list  
19:26:06,535 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AuthenticationInterceptor  
19:26:06,547 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInterceptor  
19:26:06,596 DEBUG LazyInterceptorHandler:58 - Invoking interceptor PaginatorInterceptor  
19:26:06,603 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInViewInterceptor  
19:26:06,613 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExecuteMethodInterceptor  
19:26:06,613 DEBUG ExecuteMethodInterceptor:60 - Invoking LogPanelController.list()  
19:26:06,628 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ForwardToDefaultViewInterceptor  
19:26:06,628 DEBUG ForwardToDefaultViewInterceptor:59 - forwarding to the dafault page for this logic  
19:26:06,633 DEBUG DefaultPageResult:66 - forwarding to /WEB-INF/jsp/logPanel/list.jsp  
19:26:06,634 DEBUG DefaultStaticContentHandler:63 - Deferring request to container: /smartoffice/WEB-INF/jsp/logPanel/list.jsp   
19:26:07,331 DEBUG VRaptor:96 - VRaptor ended the request

o ErrorInterceptor é chamado uma única vez. O que acontece é que sua aplicação está fazendo duas requisições pra /logpanel/list, por algum motivo. Por isso tá imprimindo duas vezes.

pq vc quer ignorar /tagria/*? por causa das imagens, css e js?

boneazul

Lucas Cavalcanti:
se vc perceber, em uma request:

19:26:06,488 DEBUG VRaptor:82 - VRaptor received a new request  
19:26:06,497 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ResourceLookupInterceptor  
19:26:06,497 DEBUG DefaultResourceTranslator:51 - trying to access /logpanel/list  
19:26:06,497 DEBUG DefaultResourceTranslator:61 - found resource [DefaultResourceMethod: LogPanelController.listLogPanelController.list()]  
19:26:06,499 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor InstantiateInterceptor  
19:26:06,510 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExceptionHandlerInterceptor  
19:26:06,524 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor FlashInterceptor  
19:26:06,527 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor HibernateTransactionInterceptor  
19:26:06,533 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ErrorInterceptor  
Requested url => http://localhost:8081/smartoffice/logpanel/list  
19:26:06,535 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AuthenticationInterceptor  
19:26:06,547 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInterceptor  
19:26:06,596 DEBUG LazyInterceptorHandler:58 - Invoking interceptor PaginatorInterceptor  
19:26:06,603 DEBUG LazyInterceptorHandler:58 - Invoking interceptor AccessInViewInterceptor  
19:26:06,613 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ExecuteMethodInterceptor  
19:26:06,613 DEBUG ExecuteMethodInterceptor:60 - Invoking LogPanelController.list()  
19:26:06,628 DEBUG ToInstantiateInterceptorHandler:53 - Invoking interceptor ForwardToDefaultViewInterceptor  
19:26:06,628 DEBUG ForwardToDefaultViewInterceptor:59 - forwarding to the dafault page for this logic  
19:26:06,633 DEBUG DefaultPageResult:66 - forwarding to /WEB-INF/jsp/logPanel/list.jsp  
19:26:06,634 DEBUG DefaultStaticContentHandler:63 - Deferring request to container: /smartoffice/WEB-INF/jsp/logPanel/list.jsp   
19:26:07,331 DEBUG VRaptor:96 - VRaptor ended the request

o ErrorInterceptor é chamado uma única vez. O que acontece é que sua aplicação está fazendo duas requisições pra /logpanel/list, por algum motivo. Por isso tá imprimindo duas vezes.

pq vc quer ignorar /tagria/*? por causa das imagens, css e js?


sim quero ignorar pq ja tenho uma servlet que ja trata recursos desse tipo (imagens,css,js) …

é entendi o que voce diz que numa request ele so chama uma vez…ate ai tudo ok…mas eu num entendo pq esta chamando duas vezes sendo que só é feita uma requisição…
não tenho nada de extraordinario na aplicação…e nem vejo por onde começar … tem alguma dica ?

Lucas_Cavalcanti

as imagens, css e js vão passar pelo vraptor, mas ele vai passar pra frente diretamente. A primeira coisa que ele faz é verificar se existe um arquivo que responde pela URL passada, não tem problema deixar o VRaptor filtar essas requisições também.

talvez exista algo no html gerado.
Dê uma olhada se não existe alguma coisa do tipo:

<img src="" .../>
<link href="" .../>
<script src="" ...>

ou também se estiver src=".". Assim toda vez que vc chamar a página ele vai fazer outro request pra ela mesma.

g0dkar

Mesmo arriscando a fúria da galera por ressucitar uma thread tão antiga…

Tive exatamente o mesmo problema. Inexplicavelmente “do dia para a noite” o VRaptor começou a chamar 2x todos os métodos dos controllers. Começou com apenas 1 método, depois foram todos.

Eu tinha algo como:

@Path("/api/entidade/acao/?")
public void acao() {
  // busca coisas no BD
  result.use(Results.representation()).from(resultado).serialize(); // Uso o plugin do vraptor para Gson ;P
}

E sempre acabava em um erro 500 devido a Session do Hibernate estar fechada. Fui investigar e acabei vendo via debug (detesto debug!) que o método estava sendo executado 2x “magicamente” (nem sequer estava na execution stack… simplesmente pulava do nada para dentro do método novamente…)

Depois de muita, muita, MUITA briga, confusão, testes… acabei descobrindo o verdadeiro culpado: O WORK DO TOMCAT!!

Apaguei a pasta /work do Tomcat e tudo voltou a funcionar mágicamente.

-1 Ponto para o Tomcat ;(

Criado 21 de março de 2011
Ultima resposta 6 de set. de 2012
Respostas 10
Participantes 4