[RESOLVIDO] Dúvida no Struts 1.3 [ClassNotFoundException]

1 resposta
R

Boa tarde galera...

Estou estudando o Struts, e fazendo alguns exemplos práticos.

Rodo o projeto no Tomcat 7, porém estou enfrentando alguns problemas...

Fiz o mapeamento no struts-config.xml para que ao acessar a URL http://localhost:8080/Struts/testeBemLoko.do seja aberta o exemplo.jsp porém só recebo o erro abaixo:

Nov 19, 2012 1:43:47 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [testeDeStruts] in context with path [/Struts] threw exception [java.lang.ClassNotFoundException: action.TesteSimplesAction] with root cause
java.lang.ClassNotFoundException: action.TesteSimplesAction
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
	at org.apache.struts.chain.commands.util.ClassUtils.getApplicationClass(ClassUtils.java:54)
	at org.apache.struts.chain.commands.util.ClassUtils.getApplicationInstance(ClassUtils.java:71)
	at org.apache.struts.chain.commands.servlet.CreateAction.createAction(CreateAction.java:98)
	at org.apache.struts.chain.commands.servlet.CreateAction.getAction(CreateAction.java:68)
	at org.apache.struts.chain.commands.AbstractCreateAction.execute(AbstractCreateAction.java:91)
	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Já revisei todo o código, já verifiquei se os nomes das classes não estão errados, enfim, até meus colegas daqui da empresa com mais experiência já olharam os códigos e não conseguimos resolver...

Segue abaixo o restante dos códigos:

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">
	<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>
struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
<struts-config>
	<action-mappings>
		<action path="/testeBemLoko" type="action.TesteSimplesAction">
			<forward name="ok" path="/exemplo.jsp"/>
		</action>
	</action-mappings>	
</struts-config>
TesteSimplesAction.java
package 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;

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

}
exemplo.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Forward com sucesso</title>
</head>
<body>
	Forward ok!
</body>
</html>

Alguém já passou por isso?

Um colega meu fez igualzinho e consegue rodar, comigo acontece esse erro maldito.

Tenho outro jsp que é o index da página, e se eu digitar o link sem a parte final do mapping ele acessa esse index normalmente...

:roll:

1 Resposta

R

Ninguém?

Poxa… :cry:

Estou continuando o tutorial e aprendendo Forms agora, espero que pelo menos isso funcione…

:roll:

EDIT: Então pessoal. O código acima está certinho. Fiz de tudo no Eclipse até descobrir que ele funcionou após eu clicar em Build Project. Não sei porque cargas da água ele estava mantendo alguma versão anterior em memória…

Mas deu tudo certo, e agora to quebrando a cabeça com Forms…

:wink:

Criado 19 de novembro de 2012
Ultima resposta 21 de nov. de 2012
Respostas 1
Participantes 1