Olá pessoal, tudo bem?
Sou iniciante em java web e estou seguindo o curso do Caelum.
Estou na parte de ciração do framework mvc e quando vou acessar minha controller, que é a responsável por redirecionar as requisições, o tomcat não consegue achá-la!
Código da Controller
package br.com.caelum.mvc;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// imports...
public class ControllerServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String business = request.getParameter("business");
String className = "br.com.caelum.mvc." + business;
try {
Class clazz = Class.forName(className);
BusinessLogic businessLogic = (BusinessLogic) clazz.newInstance();
businessLogic.execute(request, response);
} catch (Exception e) {
throw new ServletException("A lógica de negócios causou uma exceção", e);
}
}
}
Código do testaMVC (servlet para qual o controller irá redicionar)
package br.com.caelum.mvc;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestaMVC implements BusinessLogic {
public void execute(HttpServletRequest req, HttpServletResponse res) throws Exception {
System.out.println("Executando a logica e redirecionando...");
RequestDispatcher rd = req.getRequestDispatcher("/mvc-ok.jsp");
rd.forward(req, res);
}
}
<html>
<h1> MVC-OK </h1>
</html>
<?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>jsp</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>servletDeTeste</servlet-name>
<servlet-class>br.com.caelum.servlet.OiMundo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletDeTeste</servlet-name>
<url-pattern>/oi</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>idade</servlet-name>
<servlet-class>br.com.caelum.servlet.TestaParametros</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>idade</servlet-name>
<url-pattern>/testa-idade</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>nossoContador</servlet-name>
<servlet-class>br.com.caelum.servlet.Contador</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>nossoContador</servlet-name>
<url-pattern>/conta</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>adicionaContato</servlet-name>
<servlet-class>br.com.caelum.servlet.AdicionaContatoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adicionaContato</servlet-name>
<url-pattern>/testa-adiciona</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>syp</servlet-name>
<servlet-class>br.com.caelum.mvc.ControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>syp</servlet-name>
<url-pattern>/mvc</url-pattern>
</servlet-mapping>
</web-app>
Estou tentando acessar o servlet por essa url:
http://localhost:8080/jsp/mvc?business=testamvc
31/12/2009 14:42:20 org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet syp as unavailable
31/12/2009 14:42:20 org.apache.catalina.core.ApplicationContext log
SEVERE: Error loading WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@116471f
br.com.caelum.mvc.ControllerServlet
java.lang.ClassNotFoundException: br.com.caelum.mvc.ControllerServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
31/12/2009 14:42:20 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Allocate exception for servlet syp
java.lang.ClassNotFoundException: br.com.caelum.mvc.ControllerServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)
31/12/2009 15:23:31 org.apache.catalina.core.StandardWrapperValve invoke
INFO: Servlet syp is currently unavailable
Já tentei de tudo e nada, refiz o tutorial, apaguei as classes, mudei o nome do mapping no web.xml e nada!
Desde já, obrigado pela atenção!