Ola,
Estou com uma aplicacao web JSF+Tiles que funciona normalmente. Entretanto, como a aplicacao vai rodar em um ambiente sem acesso a internet, preciso usar a validacao do DTD do Tiles localmente ou mesmo desabilitar ela. Assim, tentei duas coisas:
- Usar a DTD local, com /WEB-INF/tiles-def.xml contendo:
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration//EN"
"tiles-config.dtd">
Mas isso dá um erro quando a pagina é acessada, porque o Tomcat tenta localizar esse arquivo em /%TOMCAT_HOME%/bin/tiles-config.dtd, ou seja, no diretorio onde o Tomcat foi inciado.
Tambem tentei o acesso via SYSTEM, como:
<!DOCTYPE tiles-definitions SYSTEM
"tiles-config.dtd">
mas o problema é o mesmo.
Outra alternativa foi colocar o caminho completo do tiles-config.dtd, como:
<!DOCTYPE tiles-definitions SYSTEM
"file:///C:/tomcat/webapps/minhaApp/WEB-INF/tiles-config.dtd">
Isso até funciona, mas daí meu deployment fica dependente de paths, os quais eu nao posso garantir durante as instalacoes.
- Tambem tentei desabilitar a validacao de DTDs no Tomcat, usando no meu arquivo web.xml da minha aplicacao o seguinte:
<servlet>
<servlet-name>TilesServet</servlet-name>
<servlet-class>
org.apache.struts.tiles.TilesServlet
</servlet-class>
<init-param>
<param-name>definitions-config</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</init-param>
<init-param>
<param-name>definitions-parser-validate</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
Mas parece que “definitions-parser-validate” nao adianta nada, porque a DTD continua sendo validada, mesmo que eu comente sua declaracao no “tiles-def.xml”.
Alguem tem alguma dica sobre o assunto?