Ola Pessoal.
Estou aprendedo java web com a apostila fj21 da caelum e encontrei dificuldades com o exercicio 9.7, sobre mvc.
Segem meus códigos:
A interface:
package mvc.logica;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface Logica {
void executa(HttpServletRequest req,
HttpServletResponse res)throws Exception;
}
A classe PrimeiraLogica:
package mvc.logica;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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);
}
}
A servlet Controller:
package mvc.Controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mvc.logica.*;
public class ControllerServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
super.service(request, response);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String parametro = request.getParameter("logica");
String nomeDaClasse = "mvc.logica.PrimeiraLogica";
nomeDaClasse+= parametro;
try{
Class classe = Class.forName(nomeDaClasse);
Logica logica = (Logica) classe.newInstance();
logica.executa(request, response);
}catch(Exception e){
throw new ServletException(e);
}
}
}
O xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>Controlador</servlet-name>
<servlet-class>mvc.Controller.ControllerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controlador</servlet-name>
<url-pattern>/mvc</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Bom, eu não consegui encotrar o erro, ele sempre vai para a exceção,
17/12/2012 14:43:21 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Controlador] in context with path [/AgendaServlet1] threw exception [java.lang.ClassNotFoundException: mvc.logica.PrimeiraLogicaPrimeiraLogica] with root cause
java.lang.ClassNotFoundException: mvc.logica.PrimeiraLogicaPrimeiraLogica
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at mvc.Controller.ControllerServlet.service(ControllerServlet.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
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:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Desde já, obrigada.