Struts 2: só problemas

10 respostas
Marcio_Nogueira

Olá, estou tentando utilizar a m**** do Struts 2 aqui no trabalho e estou tendo o seguinte problema:

GRAVE: Parse error in application web.xml file at jndi:/localhost/teste_sapc/WEB-INF/web.xml java.io.FileNotFoundException at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:381) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1543) at org.apache.catalina.startup.ContextConfig.parseWebXml(ContextConfig.java:1683) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1201) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:874) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4881) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:750) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:442) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:674) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) at org.apache.catalina.startup.Catalina.start(Catalina.java:600) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431) 28/01/2011 09:56:46 org.apache.catalina.startup.TaglibUriRule body INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined 28/01/2011 09:56:46 com.sun.faces.config.ConfigureListener contextInitialized INFO: Inicializando Mojarra 2.0.3 (FCS b03) para o contexto '/teste_sapc' 28/01/2011 09:56:48 com.sun.faces.spi.InjectionProviderFactory createInstance INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes. Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas. 28/01/2011 09:56:48 org.apache.coyote.AbstractProtocolHandler start INFO: Starting ProtocolHandler ["http-bio-8080"] 28/01/2011 09:56:48 org.apache.coyote.AbstractProtocolHandler start INFO: Starting ProtocolHandler ["ajp-bio-8009"] 28/01/2011 09:56:48 org.apache.catalina.startup.Catalina start INFO: Server startup in 28155 ms 28/01/2011 09:56:49 org.apache.catalina.core.StandardWrapperValve invoke GRAVE: Servlet.service() for servlet [jsp] in context with path [/teste_sapc] threw exception [The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]] with root cause The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location] at org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:60) at org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:44) at org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48) at org.apache.jsp.index_jsp._jspx_meth_s_005fform_005f0(index_jsp.java:195) at org.apache.jsp.index_jsp._jspService(index_jsp.java:146) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:550) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Alguém teria uma sugestão de como soluciná-lo? :wink:

10 Respostas

drsmachado

Ele não está encontrando

GRAVE: Parse error in application web.xml file at jndi:/localhost/teste_sapc/WEB-INF/web.xml   
java.io.FileNotFoundException

Confira se ele realmente existe e se é este o local onde ele se encontra…

S

certo!

Marcio_Nogueira
segue o meu web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "//UNKNOWN/" "unknown.dtd">
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
    version="2.4">

  <display-name>Sistema SAPC</display-name>
  <!-- início do mapeamento do struts 2 -->
  <filter>
  	<filter-name>Struts2</filter-name>
  	<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- término do mapeamento do struts 2 -->
    
  <!-- inicio do mapeamento do faces servlet -->
  <servlet>
  <servlet-name>Faces Servlet</servlet-name> 
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
  <load-on-startup>1</load-on-startup> 
  </servlet>
  
  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name> 
  <url-pattern>*.jsf</url-pattern> 
  </servlet-mapping>
  <!-- término do mapeamento do faces servlet -->
  
  <!-- início do mapeamento do spring -->
  <listner>
  	<listner-class>org.springframework.context.ContextLoaderListner</listner-class>
  </listner>
  
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>classpath*:applicationContext*.xml</param-value>
  </context-param>
  <!-- término do mapeamento do spring framework -->
  
 <!-- Session time out Configuration -->
    <session-config>
        <!-- 50 min -->
        <session-timeout>50</session-timeout>
    </session-config>

  <servlet>
    <servlet-name>RelatorioRubricaServlet</servlet-name>
    <servlet-class>br.gov.ibge.sapc.web.relatorio.servlet.RelatorioRubricaServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>RelatorioRubricaServlet</servlet-name>
    <url-pattern>/RelatorioRubricaServlet</url-pattern>
  </servlet-mapping>
  
  <!-- The Welcome File List -->
  <welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>

 
  <!-- início jstl taglib -->
  <taglib>
      <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
      <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
  
  <taglib>
      <taglib-uri>http://java.sun.com/jsp/jstl/functions</taglib-uri>
      <taglib-location>/WEB-INF/fn.tld</taglib-location>
  </taglib>
  <!-- término jstl taglib -->
  
	<servlet>
	  <servlet-name>dwr-invoker</servlet-name>
	  <display-name>DWR Servlet</display-name>
	  <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
	  <init-param>
	     <param-name>debug</param-name>
	     <param-value>true</param-value>
	  </init-param>
	</servlet>
	
  <taglib>
      <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
      <taglib-location>/WEB-INF/c.tld</taglib-location>
  </taglib>
	
	<servlet-mapping>
	  <servlet-name>dwr-invoker</servlet-name>
	  <url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>

  <filter>
  	<filter-name>ControleAcessoFilter</filter-name> 
	  <filter-class>br.gov.ibge.sapc.web.controleacesso.action.ControleAcessoFilter</filter-class> 
  </filter>
  
  <filter-mapping>
  	<filter-name>ControleAcessoFilter</filter-name> 
	<url-pattern>*.jsp</url-pattern> 
  </filter-mapping>
  
  <filter-mapping>
  	<filter-name>ControleAcessoFilter</filter-name> 
  	<url-pattern>*.do</url-pattern> 
  </filter-mapping> 

</web-app>
Marcio_Nogueira

Como posso mapear corretamente o struts 2 no web.xml para que este problema acabe?

von.juliano

Leia esse post, espero que te ajude.

Flw! :thumbup:

Marcio_Nogueira

Consegui resolver o problema, mas agora, não reconhece a tag abaixo:

<html:form action="/login" method="post" style="loginForm" focus="nome">

Obs: tenho os arquivos tlds em /WEB-INF

iogui

Marcio_Nogueira:
Consegui resolver o problema, mas agora, não reconhece a tag abaixo:

<html:form action="/login" method="post" style="loginForm" focus="nome">

Obs: tenho os arquivos tlds em /WEB-INF

Essa tag é do que?
Se vc está usando struts, use as tags do struts e para tando, declare no começo da página:

<%@ taglib prefix="s" uri="/struts-tags" %>

Outra coisa, pelo que vejo no seu web.xml, vc está misturando jsf com struts, tem certeza que vc quer fazer isso? Pra mim não parece uma boa escolha.

Pra ajudar, segue um tutorial de Struts 2:
http://www.roseindia.net/struts/struts2/index.shtml

[]s

Marcio_Nogueira

A tag citada é do struts, porém, não está sendo reconhecida.

iogui

Veja direito, tem algo errado aí. Então você declarou isto (veja abaixo) no começo da página?

<%@ taglib prefix="html" uri="/struts-tags" %>

O padrão é usar s e não html como prefixo pra tags do struts 2, não que isto seja um problema mas, acho que fica mais facil a leitura e entendimento do código por outros programadores.
Outra coisa estranha aí é que a tag form do struts, não reconhece a propriedade style e sim cssStyle.

Você não está confundindo struts 2 com struts 1 não? Cuidado pois é muito diferente.

Seguem duas referencias:
http://www.roseindia.net/struts/struts2/struts2uitags/form-tag.shtml
http://struts.apache.org/2.0.14/docs/form.html

E falando em referências, seguem referências das tags do struts 2:
http://struts.apache.org/2.0.14/docs/tag-reference.html

[]s

Marcio_Nogueira

Ao utilizar a tag do struts, dá erro 500.

Criado 28 de janeiro de 2011
Ultima resposta 28 de jan. de 2011
Respostas 10
Participantes 5