Struts, http status 500

Gente…to quebrando a cabeça e não consigo arrumar esse erro… não sei pq ele não tá achando a bendida classe…já conferi o nome várias e várias vezes…

Alguém pode me ajudar?

HTTP Status 500 -

type Exception report

message

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

exception

javax.servlet.ServletException: br.com.caelum.struts.action.TesteSimplesAction
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

java.lang.ClassNotFoundException: br.com.caelum.struts.action.TesteSimplesAction
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
	org.apache.struts.chain.commands.util.ClassUtils.getApplicationClass(ClassUtils.java:49)
	org.apache.struts.chain.commands.util.ClassUtils.getApplicationInstance(ClassUtils.java:66)
	org.apache.struts.chain.commands.servlet.CreateAction.getAction(CreateAction.java:66)
	org.apache.struts.chain.commands.AbstractCreateAction.execute(AbstractCreateAction.java:82)
	org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

codigo do struts-config…

    <action-mappings>

	<action path="/teste" type="br.com.caelum.struts.action.TesteSimplesAction">
		<forward name="ok" path="/pages/cadastraFuncionario.jsp"/>
	</action>

    
    
       <action
            path="/Welcome"
            forward="/pages/Welcome.jsp"/>

 
    </action-mappings>[/code]


código do web.xml
[code]
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>


  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>/pages/index.jsp</welcome-file>
  </welcome-file-list>
[/code]

código da action

[code]* TesteSimplesAction.java
 *
 * Created on 13 de Novembro de 2006, 16:39
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package br.com.caelum.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

/**
 *
 * @author Wellington
 */
public class TesteSimplesAction extends Action {
    
    /** Creates a new instance of TesteSimplesAction */
    public TesteSimplesAction()  {
    }
    
    
    public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
     
        System.out.println("Executando o código da lógica de negócios...");
      
        return map.findForward("ok");
    
    }
    
    
}

Abs
Well :?

troque: <action path="/teste" type="br.com.caelum.struts.action.TesteSimplesAction">

por

<action path="teste" type="br.com.caelum.struts.action.TesteSimplesAction">

Opa Tiago…testei sua alteração e o erro mudou para

[code]HTTP Status 500 -

type Exception report

message

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

exception

javax.servlet.ServletException: No action config found for the specified url.
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

root cause

org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url.
org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:68)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:446)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.[/code]

não consigo entender por que raios o struts não acha minha classe… o nome tá igualizinho…será que tem a ver com a localização dos meus arquivos source de java?

No eclipse tá definido qual é a pasta source… como me certifico que o struts tá realmente procurando minha classe na pasta que eu quero que ele procure?

No classpath eu sei que está… To ficando doidoooo :?

Descobri a resposta…

Não dava dando certo porque o output da minha compilação estava direcionada para um diretório bin, enquanto deveria estar direcionada para WEB-INF/classes ^^

vlw pra quem passou pelo tópico na expectativa de ajudar :slight_smile:

E ae cara blz

e quando ele está indicando para o output certo que seria WEB-INF\classes
eu vou no caminho na workspace, a class está lá

o esquema aqui no micro tá assim

java 1.6
Tomcat 6
Struts 1.3.8

o struts.config.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<action-mappings>

	<action path="/teste" type="br.com.caelum.struts.action.TesteSimplesAction">
		<forward name="ok" path="/exemplo.jsp"/>
	</action>
	
</action-mappings>	

<!-- Arquivo de Mensagens -->
<message-resources parameter="MessageResources" />

o Web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> Aplicacao web simples index.html struts org.apache.struts.action.ActionServlet 1 struts *.do

o arquivo java (classe)
TesteSimplesAction.java

package teste;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;

public class TesteSimplesAction extends Action
{
@Override
public ActionForward execute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
{
System.out.println(“Executando o código da lógica de negócios…”);
return map.findForward(“ok”);
}
}

vc pode ver que ele está em um pacote teste
ja tentei alterar no struts-config.xml de :

para

reiniciei o Tomcat a cada teste.

mas mesmo assim me é apresentado o erro :

http 500

type Exception report

message

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

exception

javax.servlet.ServletException: java.lang.ClassNotFoundException: br.com.caelum.struts.action.TesteSimplesAction
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.ClassNotFoundException: br.com.caelum.struts.action.TesteSimplesAction
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
org.apache.struts.chain.commands.util.ClassUtils.getApplicationClass(ClassUtils.java:54)
org.apache.struts.chain.commands.util.ClassUtils.getApplicationInstance(ClassUtils.java:71)
org.apache.struts.chain.commands.servlet.CreateAction.createAction(CreateAction.java:98)

BLA BLA BLA BLA…

o erro é apresentado quando eu tento acessar o caminho :

http://localhost:8080/struts/teste.do

alguém pode me dar uma luz ae

to querendo continuar estudando a apostila da caelum F21 mas dei uma travada nesta parte.

vlw ae ein
no outro tópico segue a estrutura de pastas da Workspace

olha a estrutura de pastas
Pasta de C:\java\workspace\br.com.caelum.struts.action
05/02/2009 23:36 217 .amateras
05/02/2009 23:37 754 .classpath
05/02/2009 22:33 4 .cvsignore
05/02/2009 22:33 462 .project
05/02/2009 23:04 356 .tomcatplugin
05/02/2009 22:33 bin
05/02/2009 22:13 251 exemplo.jsp
16/01/2009 00:25 159 index.html
06/02/2009 00:08 0 lista.txt
05/02/2009 22:33 src
04/02/2009 00:20 433 testa-mensagens.jsp
05/02/2009 22:34 WEB-INF
05/02/2009 23:41 work
Pasta de C:\java\workspace\br.com.caelum.struts.action\bin
Pasta de C:\java\workspace\br.com.caelum.struts.action\src
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF
05/02/2009 22:34 .
05/02/2009 22:34 …
05/02/2009 22:33 7 .cvsignore
05/02/2009 23:37 classes
05/02/2009 22:35 lib
05/02/2009 22:59 src
05/02/2009 23:41 524 struts-config.xml
05/02/2009 23:28 537 web.xml
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF\classes
05/02/2009 23:37 .
05/02/2009 23:37 …
03/07/2008 22:58 200 MessageResources.properties
05/02/2009 23:37 teste
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF\classes\teste
05/02/2009 23:37 .
05/02/2009 23:37 …
05/02/2009 23:53 1.205 TesteSimplesAction.class
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF\lib
05/02/2009 22:35 .
05/02/2009 22:35 …
29/05/2006 23:26 358.273 antlr-2.7.2.jar
24/09/2006 23:52 175.348 bsf-2.3.0.jar
29/05/2006 23:31 188.671 commons-beanutils-1.7.0.jar
13/08/2006 16:34 90.001 commons-chain-1.1.jar
06/12/2006 19:43 143.602 commons-digester-1.8.jar
16/08/2006 22:39 31.909 commons-fileupload-1.1.1.jar
16/08/2006 22:39 61.562 commons-io-1.1.jar
29/05/2006 23:32 38.015 commons-logging-1.0.4.jar
03/12/2006 23:43 138.956 commons-validator-1.3.1.jar
24/09/2006 23:51 20.962 jstl-1.0.2.jar
23/11/2007 02:14 16.630 jstl.jar
30/05/2006 00:23 65.261 oro-2.0.8.jar
20/07/2007 00:20 88.537 servlet-api.jar
24/09/2006 23:51 516.487 standard-1.0.2.jar
23/11/2007 02:14 315.295 standard.jar
03/03/2007 11:31 328.896 struts-core-1.3.8.jar
03/03/2007 11:38 264.038 struts-el-1.3.8.jar
03/03/2007 11:39 39.644 struts-extras-1.3.8.jar
03/03/2007 11:41 94.545 struts-faces-1.3.8.jar
03/03/2007 11:42 19.643 struts-mailreader-dao-1.3.8.jar
03/03/2007 11:43 17.784 struts-scripting-1.3.8.jar
03/03/2007 11:36 251.521 struts-taglib-1.3.8.jar
03/03/2007 11:34 119.653 struts-tiles-1.3.8.jar
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF\src
05/02/2009 22:59 .
05/02/2009 22:59 …
03/07/2008 22:58 200 MessageResources.properties
05/02/2009 23:12 teste
Pasta de C:\java\workspace\br.com.caelum.struts.action\WEB-INF\src\teste
05/02/2009 23:12 .
05/02/2009 23:12 …
05/02/2009 23:53 628 TesteSimplesAction.java
Pasta de C:\java\workspace\br.com.caelum.struts.action\work
05/02/2009 23:54 .
05/02/2009 23:54 .