Onde coloco DTD Struts 1.2.4?

4 respostas
N

Pessoal,

Não consigo que meu tiles do Struts 1.2.4 referencie localmente seus DTD’s no Tomcat. Ele sempre tenta passar pelo proxy da empresa e não consegue.

Alguém sabe onde eu coloco o DTD para que o XML encontre ?

Estou obtendo o seguinte erro no Tomcat:

javax.servlet.ServletException: IO Error while parsing file '/WEB-INF/tiles-defs.xml'. Server returned HTTP response code: 407 for URL: http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd
	at org.apache.struts.tiles.TilesPlugin.initDefinitionsFactory(TilesPlugin.java:235)
	at org.apache.struts.tiles.TilesPlugin.init(TilesPlugin.java:139)

Meu web.xml está da seguinte forma:

...
	<taglib>
		<taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
		<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
	</taglib>
...

Meu JSP usa o tiles da seguinte forma:

<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
...

Os tlds estão no WEB-INF/tld, mas já coloquei os DTD’s em WEB-INF, WEB-INF/tld, WEB-INF/classes, WEB-INF/lib, e não funciona !!!

Alguém pode ajudar ?

[]'s

4 Respostas

cv1

O que tem no tiles-defs.xml?

N

Tem isso:

<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>

  <definition name="rootLayout" path="/tiles-layouts/rootLayout.jsp">
    <put name="titleString" value="CHANGE-ME"/>
    <put name="topBanner" value="/tiles-components/topBanner.jsp"/>
    <put name="topMenu" value="/tiles-components/topMenu.jsp"/>
    <put name="panel1" value="/tiles-components/panel1.jsp"/>
    <put name="panel2" value="/tiles-components/panel2.jsp"/>
    <put name="panel3" value="CHANGE-ME"/>
    <put name="footer" value="/tiles-components/footer.jsp"/>
    <put name="footerDebug" value="/tiles-components/footerDebug.jsp"/>
  </definition>

</tiles-definitions>

Aparentemente o container (Tomcat) não está conseguindo validar o XML com o DTD.

Observando o fato de o dtd já existir dentro do struts.jar, onde mais ele deveria ser colocado ?

A propósito, estou usando servlet 2.4.

O_Mano

E ai pessoal, tb estou tendo o mesmo problema.

Acredito que não seja questão de onde está os arquivos dtds, pois quando uso o RAD da IBM, é criada a mesma estrutura por default e funciona.

Segue abaixo o erro.

10:29:45,812 ERROR TilesPlugin:230 - Can’t create Tiles definition factory for module ‘’.

10:29:45,828 ERROR [/oticasolarium]:3958 - Servlet /oticasolarium threw load() exception

org.apache.struts.tiles.DefinitionsFactoryException: IO Error while parsing file ‘/WEB-INF/tiles-defs.xml’. <a href="http://jakarta.apache.org">jakarta.apache.org</a>

at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFile(I18nFactorySet.java:538)

at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.parseXmlFiles(I18nFactorySet.java:467)

at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.createDefaultFactory(I18nFactorySet.java:271)

at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:246)

at org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory(I18nFactorySet.java:196)

at org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper.init(ComponentDefinitionsFactoryWrapper.java:104)

at org.apache.struts.tiles.TilesUtilImpl.createDefinitionsFactory(TilesUtilImpl.java:138)

at org.apache.struts.tiles.TilesUtil.createDefinitionsFactory(TilesUtil.java:167)

at org.apache.struts.tiles.TilesPlugin.initDefinitionsFactory(TilesPlugin.java:224)

at org.apache.struts.tiles.TilesPlugin.init(TilesPlugin.java:139)

at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:839)

at org.apache.struts.action.ActionServlet.init(ActionServlet.java:332)

at javax.servlet.GenericServlet.init(GenericServlet.java:212)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)

at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)

at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)

at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)

at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)

at org.apache.catalina.core.StandardService.start(StandardService.java:448)

at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)

at org.apache.catalina.startup.Catalina.start(Catalina.java:552)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:585)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
spranta

Olá net_sandro, conseguiu resolver seu problema, estou na mesma situação

Criado 20 de junho de 2005
Ultima resposta 18 de jul. de 2008
Respostas 4
Participantes 4