VRaptor3 + Tiles2 (Runtime Composition in JSP pages)

46 respostas
rogerio.alcantara

Salve turma, tudo bom?

Estou iniciando um projeto com VRaptor3 + Tiles2, acompanhando a receita de bolo (http://vraptor.caelum.com.br/cookbook/usando-tiles-com-vraptor3/) porém, diferente do exemplo, eu não gostaria de utilizar as definitions no arquivo tiles.xml. Eu gostaria de implementar o Runtime Composition in JSP pages, conforme descrito aki: http://tiles.apache.org/tutorial/advanced/runtime.html

Para tanto, não configurei o DEFINITIONS_CONFIG no web.xml:

web.xml:

<!-- servlet de inicialização do tiles -->
	<servlet>
		<servlet-name>TilesServlet</servlet-name>
		<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
		<init-param>
			<param-name>org.apache.tiles.factory.TilesContainerFactory.MUTABLE</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>

	<!-- servlet que responde as requisições do tiles -->
	<servlet>
		<servlet-name>TilesDispatchServlet</servlet-name>
		<servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
	</servlet>

	<!-- o tiles responderá por toda requisição *.tiles -->
	<servlet-mapping>
		<servlet-name>TilesDispatchServlet</servlet-name>
		<url-pattern>*.tiles</url-pattern>
	</servlet-mapping>
	<!-- End Tiles configuration -->

	<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>

Implementei o TilesPathResolver (conforme sugerido).

E a partir de agora eu vou definindo tudo nas próprias JSP’s. Por exemplo:

template.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>site</title>
	</head>
	<body>
		<div id="divHeader">
			<tiles:insertTemplate template="/WEB-INF/jsp/header.jsp"/>
		</div>
		<div id="divContent">
			<tiles:insertAttribute name="body"/>
		</div>
		<div id="divFooter">
			<tiles:insertTemplate template="/WEB-INF/jsp/footer.jsp"/>
		</div>
	</body>
</html>

E então usaria assim:

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<tiles:definition name="controllers.home.index" template="/WEB-INF/jsp/template.jsp">

	<tiles:putAttribute name="body">
		olá mundo!
	</tiles:putAttribute>

</tiles:definition>

Só que, ao chamar a url: http://localhost:8080/meusite/home/index está retornando a seguinte mensagem:

org.apache.tiles.definition.NoSuchDefinitionException: controllers.home.index
	org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:625)
	org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)
	org.apache.tiles.web.util.TilesDispatchServlet.doGet(TilesDispatchServlet.java:100)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:64)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

Ou seja, ele não está considerando a definition que fiz na página index.jsp.

Alguma sugestão? Será que falta configurar alguma coisa no web.xml para o tiles saber que deve executar via Runtime. Procurei muito no google, mas são pouquíssimas referências sobre esse assunto.

Agradeço antecipadamente,

46 Respostas

rod

Você não criou o arquivo tiles-defs.xml na pasta WEB-INF?

Caso não tenha, crie e inclua a definição do seu template, para que o tiles saiba qual template usar para determinado name.

Na index.jsp use apenas:

rogerio.alcantara

Olá @rlazoti,. mto obrigado pelo retorno.

Então, meu intuito era usar o tiles sem o tiles.xml/tiles-defs.xml.

Ou seja, eu gostaria que todas essas definitions fossem declaradas diretamente nas JSPs. (daew ficaria menos uma coisa para me preocupar… menos um xml… rs…).

Ao ler esse http://tiles.apache.org/tutorial/advanced/runtime.html imaginei que se comportaria da maneira que eu desejo.

Estou achando que falta configurar alguma coisa, mas não sei o que… Talvez informar no web.xml algum parametro informando que as definitions estão nas JSP’s. Não sei…

Será que não é possível implementar essa abordagem com o tiles2?

Mais uma vez, agradeço a atenção!

rogerio.alcantara

Salve, salve galera ninja!

Finalmente, consegui fazer o que eu queria, com ajuda do @mvoto em http://www.guj.com.br/posts/list/146168.java, baseado em uma dica do @adrianoaquino1! ^^

Necessidade: utilizar o tiles apenas para template, sem o tiles-defs.xml/tiles.xml (ou seja, no modelo Runtime Composition nas JSPs). Não utilizar o tiles para redirecionamento, e sim manter o VRaptor3.

Receita de bolo:

baixar o tiles-jsp.jar. Como estou utilizando maven2:

<dependency>
			<groupId>org.apache.tiles</groupId>
			<artifactId>tiles-jsp</artifactId>
			<version>2.2.2</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>

No web.xml:

<!-- tiles configuration -->
	<servlet>
		<servlet-name>TilesServlet</servlet-name>
		<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
		<init-param>
			<param-name>org.apache.tiles.factory.TilesContainerFactory.MUTABLE</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<!-- /tiles configuration -->

	<!-- vraptor configuration -->
	<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>
	<!-- vraptor configuration -->

Repare que não é declarado o DEFINITIONS_CONFIG, nem registrado o TilesDispatchServlet. Pois não utilizaremos arquivo para guardar as definitions, e quem cuidara dos redirecionamentos continuará sendo o VRaptor, que já faz isso muito bem obrigado! ;D Outro detalhe importante, é deixar o TilesContainerFactory como MUTABLE. :wink:

TilesPathResolver?

Nessa abordagem, não é necessário criar implementar esse PathResolver, já que essa responsabilidade continuará sendo do VRaptor. ;D

/WEB-INF/jsp/template.jsp - servirá de base para todas as páginas

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>  
<html>  
    <head>  
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
        <title>site</title>  
    </head>  
    <body>  
        <div id="divHeader">  
            <tiles:insertTemplate template="/WEB-INF/jsp/header.jsp"/>  
        </div>  
        <div id="divContent">  
            <tiles:insertAttribute name="body"/>  
        </div>  
        <div id="divFooter">  
            <tiles:insertTemplate template="/WEB-INF/jsp/footer.jsp"/>  
        </div>  
    </body>  
</html>

/WEB-INF/jsp/home/index.jsp - exemplo que utilizará o template - repare que o path mantém a convenção do VRaptor3! ^^

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>  
<tiles:insertTemplate template="/WEB-INF/jsp/template.jsp">
  
    <tiles:putAttribute name="body">  
        olá mundo!  
    </tiles:putAttribute>  
  
</tiles:insertTemplate>

HomeController.java - e finalmente o controler para redirecionar para index.jsp

@Resource
public class HomeController {

    private Result result;

    public HomeController(final Result result) {

		super();
		this.result = result;
	}

    public void index() { }
}

Prontinho! Estamos utilizando o tiles apenas para montar o template das páginas, o redirecionamento continua sendo cargo do VRaptor! ^^

Só tem um detalhe que eu gostaria de compartilhar, pois me deu muito trabalho de descobrir: suponha que eu queria estender o template.jsp para incluir um outro body. (tive essa necessidade na seção about do site…)

/WEB-INF/jsp/about/about_base.jsp - base que estenderá a template.jsp para alterar o layout

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<tiles:insertTemplate template="/WEB-INF/jsp/template.jsp">

	<tiles:putAttribute name="body">

		<div id="divCenter">
			<tiles:insertAttribute name="content" />
		</div>

		<div id="divRight">
			<p>
			<tiles:insertAttribute name="content_right" />
			</p>
		</div>

	</tiles:putAttribute>

</tiles:insertTemplate>

Pronto, agora a minha página do about, estenderá about_base.jsp e não template.jsp, por exemplo:

/WEB-INF/jsp/about/whyUse.jsp - estenderá o about_base.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<tiles:insertTemplate template="/WEB-INF/jsp/about/about_base.jsp" flush="true">

	<tiles:putAttribute name="content" cascade="true">
		o conteúdo central!
	</tiles:putAttribute>

	<tiles:putAttribute name="content_right" cascade="true">
				o conteúdo da direita!
	</tiles:putAttribute>

</tiles:insertTemplate>

Repare que dessa vez, o insertTemplate possui o atributo flush=“true”: isso é importante para que a about_base.jsp seja reinderizado primeiro. Note também que os putAttributes possuem o atributo cascade=“true”: que serve para disponibilizar esses atributos “para os templates de cima”.

Bom, isso foi bem chatinho de descobrir, mas agora a aplicação está rodando bunitinha, sem um xml, com o layout definido nas JSP’s e com o mínimo de interferência no VRaptor3! ^^

Muito obrigado pela atenção e paciência de todos.

Lucas_Cavalcanti

muito obrigado pela receita, Rogerio!

vou colocar no site do VRaptor, ok? (com créditos, claro)

só uma dúvida: não está faltando um do tiles?

G

Lucas, talvez seja interessante atualizar aquela minha receita do Tiles e dizer que só funciona com tiles <= 2.1.

Lucas_Cavalcanti

não funciona com > 2.1, ou não funciona sem o tiles_def?

G

Não funciona nas versões a partir da 2.2. Eu não tenho mais usado tiles, e isso quem relatou para mim foi um usuário do Vraptor em uma thread aqui mesmo no “Frameworks e bibliotecas brasileiras”. Se não me engano é porque o pessoal mudou a abordagem do servlet. Creio que pecisemos investigar isso. A integração que eu fiz na receita de bolo era um simples forward do Vraptor para um servlet do tiles. Acho que agora só funciona com filter.

A abordagem do tiles_def é irrelevante, pois com o tiles 2.1 em diante você pode inicializar o tiles com o tiles_def ou usar um “Full Java Configuration” e outras frescuras mais. Ou seja, é apenas a forma de configuração, e não a forma como o tiles é interceptado.

Lucas_Cavalcanti

ok, vou mudar a documentação então =) obrigado garcia-jj

rogerio.alcantara

Lucas Cavalcanti:
muito obrigado pela receita, Rogerio!

vou colocar no site do VRaptor, ok? (com créditos, claro)

só uma dúvida: não está faltando um do tiles?


Olá Lucas, muito obrigado pelo retorno!

Pois é, olha que coisa estranha: no meu projeto está sem o e está funcionando lindo! Ao inserir o para, por exemplo, “*/” dá erro. =\ …será que há algum default para cada servlet ou algo assim?

Sobre colocar no site do VRaptor, opa, é claro que sim, não precisa nem perguntar!! ;D Quanto mais compartilhar melhor, né?! ^^ Vcs (do guj) me ajudam tanto, se eu puder ajudar alguém só um tiquinho já estou feliz! ;D

Bom, para tentar facilitar, criei um projeto exemplo (em anexo).

Seguem minhas configurações locais:

Ubuntu 9.10
Workspace default JRE: jdk1.6.0_18
Eclipse Ganymede
Tomcat 6
Maven2

Tem como alguém apenas importar no eclipse e verificar se está rodando certinho? ^^

Um abraço e mais uma vez, muito obrigado pela atenção e paciência! ;D

PS: Meus talentos em interface (layout/design/css e etc) são extremamente limitados, já vou avisando! rs…

Lucas_Cavalcanti

já está no site:
http://vraptor.caelum.com.br/cookbook/vraptor-e-tiles-2-2/

obrigado Rogério =)

se quiser que mude algo é só falar

rafael.quintino

Galera, tentei seguir os passos e não consegui. Me deparei com o seguinte erro:
br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: org.apache.tiles.impl.CannotRenderException: JSPException including path ‘/WEB-INF/template/main.jsp’.

Stacktrace:

WARNING: StandardWrapperValve[default]: PWC1406: Servlet.service() for servlet default threw exception

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: org.apache.tiles.impl.CannotRenderException: JSPException including path /WEB-INF/template/main.jsp.

at br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)

at br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.util.jpa.JPATransactionInterceptor.intercept(JPATransactionInterceptor.java:48)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)

at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)

at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)

at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)

at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)

at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)

at com.sun.grizzly.ContextTask.run(ContextTask.java:69)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)

at java.lang.Thread.run(Thread.java:619)

Caused by: org.apache.jasper.JasperException: org.apache.tiles.impl.CannotRenderException: JSPException including path /WEB-INF/template/main.jsp.

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)

at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)

at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)

at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:820)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)

at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:517)

at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:488)

at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:379)

at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:336)

at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:314)

at br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)

 65 more

Caused by: org.apache.tiles.impl.CannotRenderException: JSPException including path /WEB-INF/template/main.jsp.

at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:692)

at org.apache.tiles.impl.BasicTilesContainer.renderContext(BasicTilesContainer.java:179)

at org.apache.tiles.template.InsertTemplateModel.end(InsertTemplateModel.java:101)

at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:255)

at org.apache.jsp.WEB_002dINF.jsp.pages.beleza_jsp._jspx_meth_tiles_insertTemplate_0(beleza_jsp.java from :78)

at org.apache.jsp.WEB_002dINF.jsp.pages.beleza_jsp._jspService(beleza_jsp.java from :52)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:406)

 83 more

Caused by: org.apache.tiles.util.TilesIOException: JSPException including path /WEB-INF/template/main.jsp.

at org.apache.tiles.servlet.context.ServletUtil.wrapServletException(ServletUtil.java:241)

at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:105)

at org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96)

at org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)

at org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)

at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)

at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690)

 91 more

Caused by: javax.servlet.jsp.JspException: java.io.IOException: Illegal to flush within a custom tag

at org.apache.jsp.WEB_002dINF.template.main_jsp$main_jspHelper.invoke(main_jsp.java from :233)

at org.apache.tiles.jsp.context.JspUtil.evaluateFragmentAsString(JspUtil.java:297)

at org.apache.tiles.jsp.taglib.PutAttributeTag.doTag(PutAttributeTag.java:256)

at org.apache.jsp.WEB_002dINF.template.main_jsp._jspx_meth_tiles_putAttribute_0(main_jsp.java from :90)

at org.apache.jsp.WEB_002dINF.template.main_jsp.access$000(main_jsp.java from :7)

at org.apache.jsp.WEB_002dINF.template.main_jsp$main_jspHelper.invoke0(main_jsp.java from :165)

at org.apache.jsp.WEB_002dINF.template.main_jsp$main_jspHelper.invoke(main_jsp.java from :223)

at org.apache.tiles.jsp.context.JspUtil.evaluateFragment(JspUtil.java:279)

at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:254)

at org.apache.jsp.WEB_002dINF.template.main_jsp._jspx_meth_tiles_insertTemplate_0(main_jsp.java from :76)

at org.apache.jsp.WEB_002dINF.template.main_jsp._jspService(main_jsp.java from :50)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:406)

at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)

at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:822)

at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)

at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:639)

at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:569)

at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1010)

at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:698)

at org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)

 96 more

Caused by: java.io.IOException: Illegal to flush within a custom tag

at javax.servlet.jsp.tagext.BodyContent.flush(BodyContent.java:117)

at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:258)

at org.apache.jsp.WEB_002dINF.template.main_jsp._jspx_meth_tiles_insertTemplate_1(main_jsp.java from :104)

at org.apache.jsp.WEB_002dINF.template.main_jsp.access$100(main_jsp.java from :7)

at org.apache.jsp.WEB_002dINF.template.main_jsp$main_jspHelper.invoke1(main_jsp.java from :178)

at org.apache.jsp.WEB_002dINF.template.main_jsp$main_jspHelper.invoke(main_jsp.java from :226)

 120 more

Será que alguém poderia me ajudar!?
Grato!

Lucas_Cavalcanti

tem algo de diferente no main.jsp? aparentemente o erro está nele

rafael.quintino

Bom, ele é bem simples.
Estou tentando me aventurar com o HTML5, mas não creio que seja este o problema.

<%-- 
    Document   : main
    Created on : 15/11/2010, 15:37:22
    Author     : Quintino
--%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<tiles:insertTemplate template="/WEB-INF/template/core.jsp" flush="true">
    <tiles:putAttribute name="body">
        <header>
            <h1><a href="/">Page Title</a></h1>
            <nav>
                <tiles:insertTemplate template="/WEB-INF/template/menu/perfil.jsp" flush="true"/>
            </nav>
        </header>

        <nav>
            <tiles:insertTemplate template="/WEB-INF/template/menu/menu.jsp" flush="true"/>
        </nav>

        <section>
            <tiles:insertAttribute name="section"/>
        </section>

        <aside>
            <h2>...</h2>
        </aside>

        <footer>
            <tiles:insertTemplate template="/WEB-INF/template/footer.jsp" flush="true"/>
        </footer>
    </tiles:putAttribute>
</tiles:insertTemplate>

O conteúdo do core.jsp é igual ao que achei no site http://html5reset.org/ (com suas devidas alterações, para utilizar o tiles.)

Lucas_Cavalcanti

tenta tirar o flush=true

rafael.quintino

Agora funcionou…
Eu havia colocado os flush=“true” numa tentativa desesperada de fazer funcional. rsrsrs!!! :oops:
Antes estava tendo outro problema com o SLF4J, mas foi apenas um problema de dependências, então quando veio este problemas já tava de cabeça cheia a apelei pra tudo!!!
Depois de muitas tentativas acabei apelando para o GUJ e estou muito agradecido pela colaboração de vcs.
Muito obrigado!
[]'s!!!

bfilardi

Pessoal,

Estou começando a aprender sobre o Vraptor agora na versão 3. Estou desenvolvendo um helloWorld utilizando o tiles para montagem de tela, mas estou recebendo o seguinte erro na integração com o Vraptor.

VRaptor 3 Tiles 2.2.2
br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/teste/teste.jsp at line 10

7: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8: </head>
9: <body>
10: <tiles:insertTemplate template="/WEB-INF/jsp/template.jsp" flush="true">
11: 	<tiles:putAttribute name="body">
12: 		Olá Mundo Teste!!!!
13: 	</tiles:putAttribute>

Stacktrace:
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Alguém sabe como posso resolver?!

Estou recebendo no momento da montagem da tela

Lucas_Cavalcanti

esse template: /WEB-INF/jsp/template.jsp funciona? tem algum erro nele? (deve aparecer mais abaixo na stacktrace)

bfilardi

Segue o código todo do StackTrace, mas não estou vendo nada referente ao template.jsp

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/teste/teste.jsp at line 10

7: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8: </head>
9: <body>
10: <tiles:insertTemplate template="/WEB-INF/jsp/template.jsp" flush="true">
11: 	<tiles:putAttribute name="body">
12: 		Olá Mundo Teste!!!!
13: 	</tiles:putAttribute>	


Stacktrace:
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/teste/teste.jsp at line 10

7: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
8: </head>
9: <body>
10: <tiles:insertTemplate template="/WEB-INF/jsp/template.jsp" flush="true">
11: 	<tiles:putAttribute name="body">
12: 		Olá Mundo Teste!!!!
13: 	</tiles:putAttribute>	


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/tiles/template/InsertTemplateModel
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.WEB_002dINF.jsp.teste.teste_jsp._jspService(teste_jsp.java:71)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause

java.lang.NoClassDefFoundError: org/apache/tiles/template/InsertTemplateModel
	org.apache.tiles.jsp.taglib.InsertTemplateTag.<init>(InsertTemplateTag.java:44)
	org.apache.jsp.WEB_002dINF.jsp.teste.teste_jsp._jspx_meth_tiles_005finsertTemplate_005f0(teste_jsp.java:83)
	org.apache.jsp.WEB_002dINF.jsp.teste.teste_jsp._jspService(teste_jsp.java:61)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
root cause

java.lang.ClassNotFoundException: org.apache.tiles.template.InsertTemplateModel
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
	org.apache.tiles.jsp.taglib.InsertTemplateTag.<init>(InsertTemplateTag.java:44)
	org.apache.jsp.WEB_002dINF.jsp.teste.teste_jsp._jspx_meth_tiles_005finsertTemplate_005f0(teste_jsp.java:83)
	org.apache.jsp.WEB_002dINF.jsp.teste.teste_jsp._jspService(teste_jsp.java:61)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:44)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.

Apache Tomcat/6.0.26
Lucas_Cavalcanti

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/tiles/template/InsertTemplateModel
tah faltando algum jar do tiles, ou está com a versão errada

bfilardi

Estou utilizando os seguintes jars:

tiles-api-2.2.2.jar
tiles-core-2.2.2.jar
tiles-jsp-2.2.2.jar
tiles-servlet-2.2.2.jar

Devo utilizar outra versão?!

Lucas_Cavalcanti

esses jars estão na pasta WEB-INF/lib?

bfilardi

Estão sim.

Verifiquei aqui e estava faltando o tiles-template-2.2.2.jar.

Problema foi resolvido agora.

leandro.costa

Pessoal, estou fazendo uma POC (prova de conceito) com VRaptor 3.2 e Tiles 2.2.0 no Tomcat v7.0.6. Estou usando Ivy para gerenciar as dependências. Tive problemas na hora de subir a aplicação.

Stack trace:

01/02/2011 10:06:28 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
01/02/2011 10:06:28 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Tiles' did not find a matching property.
01/02/2011 10:06:28 org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
01/02/2011 10:06:28 org.apache.coyote.AbstractProtocolHandler init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
01/02/2011 10:06:28 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1127 ms
01/02/2011 10:06:28 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
01/02/2011 10:06:28 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.6
log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
01/02/2011 10:06:31 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter vraptor
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
	at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
	at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:411)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:349)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:68)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:82)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
01/02/2011 10:06:31 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error filterStart
01/02/2011 10:06:31 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/Tiles] startup failed due to previous errors
01/02/2011 10:06:31 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive pontus.war
10:06:32,203  INFO [BasicConfiguration  ] Using class br.com.caelum.vraptor.ioc.spring.SpringProvider as Container Provider
10:06:32,231  INFO [DefaultSpringLocator] No application context found
01/02/2011 10:06:32 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter vraptor
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
	at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
	at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:411)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:349)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:68)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:82)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
01/02/2011 10:06:32 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error filterStart
01/02/2011 10:06:32 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/pontus] startup failed due to previous errors
01/02/2011 10:06:32 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
01/02/2011 10:06:32 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
01/02/2011 10:06:32 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
01/02/2011 10:06:32 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
01/02/2011 10:06:32 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory host-manager
01/02/2011 10:06:32 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory manager
01/02/2011 10:06:32 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
01/02/2011 10:06:32 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["http-bio-8080"]
01/02/2011 10:06:32 org.apache.coyote.AbstractProtocolHandler start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
01/02/2011 10:06:32 org.apache.catalina.startup.Catalina start
INFO: Server startup in 4035 ms

Qual o problema?

Depois de algumas pesquisadas, vi neste post http://www.guj.com.br/java/224562-configurando-vraptor-320 uma luz para a solução, e, consegui resolver com a configuração abaixo:

Usei a versão 2.1.0 do Tiles excluindo “jcl-over-slf4j” e funcionou perfeitamente:

<dependencies>
		<dependency org="br.com.caelum" name="vraptor" rev="3.2.0" conf="default" />
		<dependency org="org.apache.tiles" name="tiles-jsp" rev="2.1.0" conf="default">
			<exclude module="jcl-over-slf4j" />
		</dependency>
	</dependencies>

Não sei se é a melhor forma para isso, alguém pode me ajudar a resolver da forma correta funcionar com VRaptor 3 e Tiles 2.2?

Abraço!

G

Se você usar o jcl-over-slf4j deve remover o commons-logging das dependencias, pois um conflita com o outro.

Lucas_Cavalcanti

o slf4j é justamente um módulo para escolher qual engine de logging vc vai usar.

é perfeitamente válido vc substituir o logging que quer usar, no caso trocando o jcl pelo do vraptor, que é o log4j

leandro.costa

Fala Garcia, isso não resolveu o problema :frowning:

Você quis dizer dessa forma?

<dependencies>
		<dependency org="br.com.caelum" name="vraptor" rev="3.2.0" conf="default">
			<exclude module="commons-logging" />
		</dependency>
		<dependency org="org.apache.tiles" name="tiles-jsp" rev="2.2.0" conf="default" />
	</dependencies>

Alguém ainda na escuta? :slight_smile:

Abraço!

Lucas_Cavalcanti

sem o jcl-over-slf4j o tiles não funciona?

acho melhor excluir esse modulo

leandro.costa

Um outro problema que ocorre mas funciona é o seguinte:

Com essa configuração de dependências:

<dependencies>
		<dependency org="br.com.caelum" name="vraptor" rev="3.2.0" conf="default" />
		<dependency org="org.apache.tiles" name="tiles-jsp" rev="2.1.0" conf="default">
			<exclude module="jcl-over-slf4j" />
		</dependency>
	</dependencies>

Funciona, só que dá um erro neste instante:

01/02/2011 11:40:56 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1075 ms
01/02/2011 11:40:56 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
01/02/2011 11:40:56 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.6
log4j:WARN No appenders could be found for logger (br.com.caelum.vraptor.config.BasicConfiguration).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
01/02/2011 11:40:59 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive pontus.war
11:41:00,548  INFO [BasicConfiguration  ] Using class br.com.caelum.vraptor.ioc.spring.SpringProvider as Container Provider
11:41:00,571  INFO [DefaultSpringLocator] No application context found
01/02/2011 11:41:00 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter vraptor
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
	at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
	at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:411)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:349)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.start(SpringBasedContainer.java:68)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.start(SpringProvider.java:82)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:110)
	at br.com.caelum.vraptor.VRaptor.init(VRaptor.java:103)
	at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4382)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5040)
	at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5035)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:680)
01/02/2011 11:41:00 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error filterStart
01/02/2011 11:41:00 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/pontus] startup failed due to previous errors
01/02/2011 11:41:00 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
GRAVE: The web application [/pontus] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
01/02/2011 11:41:00 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
01/02/2011 11:41:00 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
01/02/2011 11:41:01 org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
01/02/2011 11:41:01 org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()

Porque?

Abraço!

Lucas_Cavalcanti

pq o spring tá tentando usar o slf4j com o commons-logging…

geralmente dá pra ignorar esse erro, no pior dos casos vc não vai ver os logs do spring

G

Eu não conheço muito do Ivy, mas quais as dependencias você tem aí? Dá para postar o trecho do arquivo onde você define as dependencias?

O que está acontecendo aí é que tu tens declarado classes que conflitam entre sí. No site do SLF4J há uma documentação que explica bem o que é cada módulo. No seu caso o jcl-over-slf4j substitui o commons-logging, assim como o jul-over-slf4j substitui o Java Logging, e o mesmo para o log4j-over-slf4j que substitui o log4j.

leandro.costa

Hum… entendi.

ivy.xml:

<ivy-module version="2.0">
	<info organisation="cocento" module="tiles" />

	<configurations>
		<conf name="default" description="dependencies used for compile" />
	</configurations>

	<dependencies>
		<dependency org="br.com.caelum" name="vraptor" rev="3.2.0" conf="default" />
		<dependency org="org.apache.tiles" name="tiles-jsp" rev="2.1.0" conf="default">
			<exclude module="jcl-over-slf4j" />
		</dependency>
	</dependencies>
</ivy-module>

/lib:

aopalliance-1.0.jar
aspectjrt-1.6.9.jar
cglib-nodep-2.1_3.jar
commons-beanutils-1.7.0.jar
commons-digester-1.8.jar
commons-logging-1.1.1.jar
commons-logging-api-1.1.jar
guava-r07.jar
javassist-3.7.ga.jar
log4j-1.2.16.jar
mirror-1.5.1.jar
objenesis-1.1.jar
ognl-2.7.3.jar
paranamer-2.2.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
spring-2.5.6.jar
tiles-api-2.1.0.jar
tiles-core-2.1.0.jar
tiles-jsp-2.1.0.jar
tiles-servlet-2.1.0.jar
vraptor-3.2.0.jar

Bom, vou me virando aqui, caso encontre a saída, posto a solução.

Valeu pela ajuda até agora de todos.
Abraço!

G

O problema está sendo aqui, tem duas libs do commons-logging, sendo que além disso tem o jcl-over-slf4j.

commons-logging-1.1.1.jar commons-logging-api-1.1.jar

Minha sugestão é usar o jcl-over-slf4j, pois assim você pode concentrar os logs em uma única API.

Creio que alguma outra lib esteja baixando o commons-logging como dependencia. O Lucas citou que pode ser o Spring. Tente colocar um ignore para a classe commons-logging e commons-logging-api na definição do Spring e também do tiles.

ThiagoInGuj

Muito bom esse post!

Tentei testar aqui incluindo todos os jars do tiles, exceto aquele jcl-over-slf4j e o slfj4j-api, mas deu um erro de class not found: javax.portlet.PortletRequest

Então eu baixei o jar portlet-api_2.0.jar e então funcionou sem problemas. Alguém sabe o motivo disso?

Lucas_Cavalcanti

vc deve estar usando algo que depende da api de portlets

ThiagoInGuj

Tipo o que? Comecei usando o projeto blank do VRaptor…

Lucas_Cavalcanti

eu que vou saber? :wink: talvez seja alguma lib que vc colocou no projeto, ou que está no servidor.

Ninguém usa portlets :stuck_out_tongue:

ThiagoInGuj

Quem tá pedindo esse portlet é o próprio tiles:

O erro é:

org.apache.tiles.portlet.context.NotAPortletEnvironmentException: Cannot access portlet classes

ThiagoInGuj

Ih, eu coloquei 2 jars do tiles que se chamam portlet rsrs

Excluí os jars: tiles-portlet-2.2.2 e tiles-portlet-wildcard-2.2.2 e aí funcionou.

Hehe, valeu!

Ah, tb excluí aquela classe portlet que eu tinha baixado. É nós.

J

Fala Galera, gostaria da ajuda de voces. Estou utilizando Vrpator + tiles e estou recebendo o seguinte erro:

GRAVE: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.tiles.template.InsertTemplateModel.start(InsertTemplateModel.java:74) at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:253) at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspx_meth_tiles_005finsertTemplate_005f0(index_jsp.java:88) at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspService(index_jsp.java:63) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:69) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:79) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:67) at br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:60) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:67) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:85) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91) at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source) 18/07/2012 17:37:11 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet default threw exception br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: java.lang.NullPointerException at br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:69) at br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:60) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:67) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:85) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.util.hibernate.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69) at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54) at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44) at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91) at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.jasper.JasperException: java.lang.NullPointerException at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:69) at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:79) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:67) ... 48 more Caused by: java.lang.NullPointerException at org.apache.tiles.template.InsertTemplateModel.start(InsertTemplateModel.java:74) at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:253) at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspx_meth_tiles_005finsertTemplate_005f0(index_jsp.java:88) at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspService(index_jsp.java:63) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) ... 62 more

Alguem poderia me ajudar?

Lucas_Cavalcanti

finalzinho:

Caused by: java.lang.NullPointerException  
    at org.apache.tiles.template.InsertTemplateModel.start(InsertTemplateModel.java:74)  
    at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:253)  
    at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspx_meth_tiles_005finsertTemplate_005f0(index_jsp.java:88)  
    at org.apache.jsp.WEB_002dINF.jsp.product.index_jsp._jspService(index_jsp.java:63)

da uma olhada nesse product/index.jsp e dá uma olhada na chamada tiles:insertTemplate, vc tá passando algo null pra ela.

S

Olá pessoal!

Estou com o mesmo problema do @joaovdscostal. Não tem nenhuma linha inválida no JSP que possa causar o NULL, tanto que a aplicação funciona em algumas situações. A aplicação deve rodar em vários contextos diferentes no tomcat. Sempre que paro o tomcat e subo o WAR, a aplicação funciona sem problema algum. Quando subo o mesmo WAR em outro contexto, passa a dar problema no TILES.

Segue as configurações:

web.xml

<!-- Tiles -->
    <servlet>
        <servlet-name>TilesServlet</servlet-name>
        <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
        <init-param>
            <param-name>org.apache.tiles.factory.TilesContainerFactory.MUTABLE</param-name>
            <param-value>true</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <!-- VRaptor -->
    <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>

Exception:

type Exception report

message br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/login/form.jsp at line 5 2: <%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 3: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4: <%@taglib tagdir="/WEB-INF/tags" prefix="r" %> 5: <tiles:insertTemplate template="/WEB-INF/jsp/templates/login.jsp"> 6: <tiles:putAttribute name="body"> 7: <div class="login"> 8: <div class="logo"> Stacktrace:

description The server encountered an internal error (br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/login/form.jsp at line 5 2: <%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%> 3: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4: <%@taglib tagdir="/WEB-INF/tags" prefix="r" %> 5: <tiles:insertTemplate template="/WEB-INF/jsp/templates/login.jsp"> 6: <tiles:putAttribute name="body"> 7: <div class="login"> 8: <div class="logo"> Stacktrace:) that prevented it from fulfilling this request.

exception

br.com.caelum.vraptor.InterceptionException: br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/login/form.jsp at line 5

2: <%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
3: <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
4: <%@taglib tagdir="/WEB-INF/tags" prefix="r" %>
5: <tiles:insertTemplate template="/WEB-INF/jsp/templates/login.jsp">
6: <tiles:putAttribute name="body">
7: <div class="login">
8: <div class="logo">

root cause

java.lang.NullPointerException
	org.apache.tiles.template.InsertTemplateModel.start(InsertTemplateModel.java:74)
	org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:253)
	org.apache.jsp.WEB_002dINF.jsp.login.form_jsp._jspx_meth_tiles_005finsertTemplate_005f0(form_jsp.java:107)
	org.apache.jsp.WEB_002dINF.jsp.login.form_jsp._jspService(form_jsp.java:79)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:69)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:79)
	br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:67)
        ....
Lucas_Cavalcanti

o seu template /WEB-INF/jsp/templates/login.jsp
usa algum dado que deveria estar no request?

S

Avançando um pouco mais, consegui duplicar o problema com apenas um contexto.

-> Faço o build do WAR (Netbeans 7.2)
-> Faço deploy no tomcat (7.0.29)
-> Acesso a aplicação (tudo funciona)
-> Faço o undeploy
-> Envio novamente o WAR no tomcat (simulando uma nova versão da aplicação)
-> Nesse momento para de funcionar!

Se reiniciar o tomcat, volta a funcionar sem problemas.

Lucas, nesse template uso o pageContext.request.serverName, pageContext.request.serverPort e pageContext.servletContext.contextPath

Lucas_Cavalcanti

e qual é o problema de reiniciar o tomcat depois do deploy?

S

No ambiente de desenvolvimento nenhum, mas no de produção sim, pois existem outros contextos rodando no tomcat que não podem parar.

Lucas_Cavalcanti

da uma olhada se isso é problema do tiles… pq o vraptor não tem nada a ver com isso, aparentemente…

abre um tópico perguntando específicamente isso que alguem deve responder, não manjo nada de tiles :stuck_out_tongue:

Criado 13 de agosto de 2010
Ultima resposta 24 de set. de 2012
Respostas 46
Participantes 10