Ola Amigos…
Estou tentando implementar um exemplo da Apostila FJ21 da Caelum e estou tomando um pau danado. Esta dando um erro que eu nao
consigo sanar.
Tenho o seguinte Controller:
public class ControllerServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String parametro = request.getParameter("logica");
String nomeDaClasse = "br.com.caelum.mvc.logica." + parametro;
try {
Class classe = Class.forName(nomeDaClasse);
Logica logica = (Logica) classe.newInstance();
logica.executa(request, response);
} catch (Exception e) {
throw new ServletException("A lógica de negócios causou uma exceção", e);
}
}
}
O ControllerServlet ta mapeado assim no web.xml:
<servlet>
<description></description>
<display-name>ControllerServlet</display-name>
<servlet-name>ControllerServlet</servlet-name>
<servlet-class>br.com.caelum.mvc.ControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControllerServlet</servlet-name>
<url-pattern>/mvc</url-pattern>
</servlet-mapping>
O codigo da Interface Logica.java é:
public interface Logica {
void executa(HttpServletRequest req, HttpServletResponse res) throws Exception;
}
e a implementação da PrimeiraLogica.java é:
public class PrimeiraLogica implements Logica {
public void executa(HttpServletRequest req, HttpServletResponse res) throws Exception {
System.out.println("Executando a logica e redirecionando...");
RequestDispatcher rd = req.getRequestDispatcher("/primeira-logica.jsp");
rd.forward(req, res);
}
}
O erro acontece quando tento acessar a apartir de http://localhost:8080/fj21-agenda/mvc?logica=PrimeiraLogica.
O erro que aparece no console é:
07/01/2011 21:22:28 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet ControllerServlet threw exception
java.lang.ClassNotFoundException: br.com.caelum.mvc.logica.PrimeiraLogica
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at br.com.caelum.mvc.ControllerServlet.service(ControllerServlet.java:25)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Nao tenho muita experiencia por isso nao consigo enxergar oque esta errado.