Struts 1: Erro

7 respostas
donny

Boa noite pessoal. Estou estudando a apostila FJ21 da Caelum e estou tendo o seguinte problema com o Struts 1:

Logs do TomCat v6

18/08/2010 22:33:01 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Struts' did not find a matching property.
18/08/2010 22:33:01 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: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;c:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\SSH Communications Security\SSH Secure Shell
18/08/2010 22:33:01 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
18/08/2010 22:33:01 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 402 ms
18/08/2010 22:33:01 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
18/08/2010 22:33:01 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.16
18/08/2010 22:33:01 org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet testeDeStruts as unavailable
18/08/2010 22:33:01 org.apache.catalina.core.ApplicationContext log
GRAVE: Error loading WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@119cca4
 org.apache.struts.action.ActionServlet
java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
18/08/2010 22:33:01 org.apache.catalina.core.StandardContext loadOnStartup
GRAVE: Servlet /Struts threw load() exception
java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1083)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
18/08/2010 22:33:01 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
18/08/2010 22:33:01 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
18/08/2010 22:33:01 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/19  config=null
18/08/2010 22:33:01 org.apache.catalina.startup.Catalina start
INFO: Server startup in 339 ms

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
	<action-mappings>
		<action path="Struts" type="br.com.caelum.struts.action.TesteSimplesAction">
			<forward name="ok" path="/exemplo.jsp"/>
		</action>
	</action-mappings>
</struts-config>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Struts</display-name>
  <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
     
     <servlet>
		<servlet-name>testeDeStruts</servlet-name>
			<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
			<load-on-startup>1</load-on-startup>
		</servlet>
	<servlet-mapping>
		<servlet-name>testeDeStruts</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
</web-app>

Não estou conseguindo resolver esse problema.


7 Respostas

marcelo.bellissimo

ClassNotFound… pelo jeito você não colocou os jar’s do Struts corretamente na sua aplicação… verifique as configurações do Classpath, veja se os jar’s estão sendo referenciados…

donny

Aew Marcelo! As libs foram a primeira coisa que verifiquei. Segue a imagem abaixo:


abelgomes

esta parecendo que tem algum JAr faltando.
Mas no meu WEB.XML esta assim

action *.do e no seu esta ssim # # testeDeStruts # *.do #

nao sei se tem haver…mas eu diria que é lib.

donny

É o que parece ser, mas eu adicionei todos os JAR do zip do Struts no meu projeto. Tbm fiz a alteração no WEB.XML e persiste o mesmo erro nos logs do tomcat.

marcelo.bellissimo

Como você está “subindo” o seu projeto? Por dentro do Eclipse, ou você está fazendo o deploy da aplicação no seu Tomcat manualmente?

Se for pelo Eclipse, verifique nas propriedades dele (aba Servers, clica com o direito e em Properties) qual o “Location” que está lá… pra funcionar deve ser o “[workspace metadada]”…

donny

Ok Marcelo, fiz o que vc mandou, mudei o location para [Workspace metadata] pq estou executando por dentro do eclipse.

Agora o erro é outro:

9/08/2010 15:12:32 org.apache.tomcat.util.digester.SetPropertiesRule begin
AVISO: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Struts' did not find a matching property.
19/08/2010 15:12:32 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: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre6/bin/client;C:/Program Files/Java/jre6/bin;c:\Program Files\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\SSH Communications Security\SSH Secure Shell
19/08/2010 15:12:32 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
19/08/2010 15:12:32 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 381 ms
19/08/2010 15:12:32 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
19/08/2010 15:12:32 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.16
19/08/2010 15:12:33 org.apache.struts.action.ActionServlet initChain
INFO: Loading chain catalog from jar:file:/D:/Projetos%20Eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/Struts/WEB-INF/lib/struts-core-1.3.10.jar!/org/apache/struts/chain/chain-config.xml
19/08/2010 15:12:33 org.apache.commons.digester.Digester error
GRAVE: Parse Error at line 2 column 15: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.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.XMLNSDocumentScannerImpl.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.commons.digester.Digester.parse(Digester.java:1827)
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:740)
	at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:689)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:356)
	at javax.servlet.GenericServlet.init(GenericServlet.java:212)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
19/08/2010 15:12:33 org.apache.commons.digester.Digester error
GRAVE: Parse Error at line 2 column 15: Document root element "struts-config", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null".
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.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.XMLNSDocumentScannerImpl.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.commons.digester.Digester.parse(Digester.java:1827)
	at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:740)
	at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:689)
	at org.apache.struts.action.ActionServlet.init(ActionServlet.java:356)
	at javax.servlet.GenericServlet.init(GenericServlet.java:212)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	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:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
19/08/2010 15:12:33 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
19/08/2010 15:12:33 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
19/08/2010 15:12:33 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/31  config=null
19/08/2010 15:12:33 org.apache.catalina.startup.Catalina start
INFO: Server startup in 834 ms

struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
	<action-mappings>
		<action path="Struts" type="br.com.caelum.struts.action.TesteSimplesAction">
			<forward name="ok" path="/exemplo.jsp"/>
		</action>
	</action-mappings>
</struts-config>
marcelo.bellissimo
Tá faltando a tag DOCTYPE no seu XML... é pra ficar assim:
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;

&lt;!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd"&gt;


&lt;struts-config&gt;
...
...
...
...
Criado 18 de agosto de 2010
Ultima resposta 19 de ago. de 2010
Respostas 7
Participantes 3