Problemas com JSP

20 respostas
Eduardo_Bregaida

Fis todo código JSP, compila, mas na hora de gravar da esse erro:

HTTP Status 404 - /PI/CopyOfControlador

--------------------------------------------------------------------------------

type Status report

message /PI/CopyOfControlador

description The requested resource (/PI/CopyOfControlador) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.7

oq seria????

/PI/CopyOfControlador existe essa classe...

20 Respostas

R

Aparentemente o contaier não achou o seu controlador, ele está mapeado corretamente no web.xml da sua aplicação ?

Fabricio_Cozer_Marti

HTTP Status 404 = Não está encontrando o recurso ( página ) no servidor, que você está querendo acessar.

Eduardo_Bregaida

Mexi no meu XML e setei-o corretamente agora ta dando esses erros:

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: Error allocating a servlet instance
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)


root cause 

java.lang.NoClassDefFoundError: IllegalName: /CopyOfControlador
	java.lang.ClassLoader.preDefineClass(ClassLoader.java:476)
	java.lang.ClassLoader.defineClass(ClassLoader.java:614)
	java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1626)
	org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:850)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1299)
	org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
	org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
	org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	java.lang.Thread.run(Thread.java:595)


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


--------------------------------------------------------------------------------

Apache Tomcat/5.5.7
R

Manda o teu web.xml ai pra eu dar uma olhada.

Fabricio_Cozer_Marti

manda o q vc fez no seu web.xml, verifique se essa servlet está compilada e o .class dela está no local devido.

Fabricio_Cozer_Marti

Rafaelprp o caso é seu ! … hehehehe :mrgreen:

R

:lol:

Eduardo_Bregaida
Rafaelprp:
Fabrício Cozer Martins:
Rafaelprp o caso é seu ! ... hehehehe :mrgreen:

:lol:

Estou fazendo tudo no NetBeans, ele compila e executa...

Minha XML:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name> INTRANET</display-name>
	<description>Contexto da INTRANET</description>
  <servlet>
    <servlet-name>CopyOfControlador</servlet-name>
   
    <servlet-class>/CopyOfControlador</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CopyOfControlador</servlet-name>
    <url-pattern>/CopyOfControlador</url-pattern>
  </servlet-mapping>       
  
  
    <servlet>
    <servlet-name>Actions</servlet-name>
   
    <servlet-class>/Actions</servlet-class>
  </servlet>

  <servlet-mapping>
  
    <servlet-name>Actions</servlet-name>
    <url-pattern>/Actions</url-pattern>
  </servlet-mapping>
    <servlet>
    <servlet-name>CopyOfGerSistemaBD</servlet-name>
   
    <servlet-class>/CopyOfGerSistemaBD</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CopyOfGerSistemaBD</servlet-name>
    <url-pattern>/CopyOfGerSistemaBD</url-pattern>
  </servlet-mapping>                          
  
</web-app>
R

Cara, nesse trecho:

<servlet-class>/CopyOfGerSistemaBD</servlet-class>

Aqui você tem que colocar a localização da classe, ex: <servlet-class>br.com.meuProjeto.controle.CopyOfGerSistemaBD</servlet-class>
onde:

br.com.meuProjeto.controle.

é o pacote em que a classe se encontra.
Se não tiver em nenhum pacote, simplesmente coloque:

<servlet-class>CopyOfGerSistemaBD</servlet-class>

Sem a /.

Isso vale para todos os servlets.

Eduardo_Bregaida

Rafaelprp:
Cara, nesse trecho:

<servlet-class>/CopyOfGerSistemaBD</servlet-class>

Aqui você tem que colocar a localização da classe, ex: <servlet-class>br.com.meuProjeto.controle.CopyOfGerSistemaBD</servlet-class>
onde:

br.com.meuProjeto.controle.

é o pacote em que a classe se encontra.
Se não tiver em nenhum pacote, simplesmente coloque:

<servlet-class>CopyOfGerSistemaBD</servlet-class>

Sem a /.

Isso vale para todos os servlets.

Assim:

<servlet-class>C:\Documents and Settings\Eduardo\Desktop\Web\PI\src\CopyOfGerSistemaBD</servlet-class>
R

Heero Yuy:
Rafaelprp:
Cara, nesse trecho:

<servlet-class>/CopyOfGerSistemaBD</servlet-class>

Aqui você tem que colocar a localização da classe, ex: <servlet-class>br.com.meuProjeto.controle.CopyOfGerSistemaBD</servlet-class>
onde:

br.com.meuProjeto.controle.

é o pacote em que a classe se encontra.
Se não tiver em nenhum pacote, simplesmente coloque:

<servlet-class>CopyOfGerSistemaBD</servlet-class>

Sem a /.

Isso vale para todos os servlets.

Assim:

<servlet-class>C:\Documents and Settings\Eduardo\Desktop\Web\PI\src\CopyOfGerSistemaBD</servlet-class>

Não é o caminho físico que ele quer ai, por exemplo, se na sua aplicação o seu servlet está no pacote “meuPacote” entã você colocaria o mapeamento assim:

<servlet-class>meuPacote.CopyOfGerSistemaBD</servlet-class>

caso ele não esteja em nenhum pacote, você simplesmente coloca assim:

<servlet-class>CopyOfGerSistemaBD</servlet-class>

Abraço,

Eduardo_Bregaida

quando mando debugar aparece essa nota em vermelho:

s Note: C:\Documents and Settings\Eduardo\Desktop\Web\PI\src\action\CopyOfControlador.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.

Será q nao pode ser isso?

R

manda o fonte do teu controlador.

Eduardo_Bregaida
Rafaelprp:
manda o fonte do teu controlador.

é Esse:

/*
 * CopyOfControlador.java
 *
 * Created on 8 de Agosto de 2005, 11:16
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

/**
 *
 * @author eduardo
 */



import java.io.IOException;
import java.util.HashMap;

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

//import action.AbrirOSAction;
import action.Actions;
//import action.AlterarDadosAction;
//import action.ExcluirUsuarioAction;
import action.CopyOfInserirUsuarioAction;
//import action.LoginAction;
//import action.LogoutAction;

public class CopyOfControlador extends HttpServlet {
	public CopyOfControlador() {}
	
	private HashMap acoes = new HashMap();
	
	public void init() throws ServletException {
		
		//acoes.put("default", new LoginAction());
		//acoes.put("login", new LoginAction());
		acoes.put("inserirUsuario", new CopyOfInserirUsuarioAction());
		//acoes.put("alterarDados", new AlterarDadosAction());
		//acoes.put("logout", new LogoutAction());
		//acoes.put("excluirUsuario", new ExcluirUsuarioAction());
		//acoes.put("abrirOS", new AbrirOSAction());
		//acoes.put("deletar", new ExcluirUsuarioAction());
	}

	private Actions getAction (HttpServletRequest request){
		
		//recebe o valor que vem nos objetos
		String actionType = request.getParameter("actionType");
		if (actionType == null) {
			actionType = "default";
		}
		Actions action = (Actions) acoes.get(actionType);
		if (action == null) {
			action = (Actions) acoes.get("mostrarPaginaErro");//mapeado para 
		}
		return action;
		
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		distribuidor(request,response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		distribuidor(request,response);		
	}
	
	public void distribuidor (HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		Actions actions = getAction(request);
		actions.execute(request, response);
		
	}
}
Eduardo_Bregaida

Mudei meu código de novo, refiz tudo, refiz o XML e continua nesse erro... por favor alguem me dá um help... vou perder o emprego se essa droga nao sair até o fim dessa semana...

HTTP Status 404 - /Controlador

--------------------------------------------------------------------------------

type Status report

message /Controlador

description The requested resource (/Controlador) is not available.


--------------------------------------------------------------------------------

Apache Tomcat/5.5.7
ThomasCouto

desenterrando o tópico…

alguem pode me dizer qual a função de um controlador?

é com o controlador que eu faço “includes” de paginas via querystring?

por exemplo:

principal.jsp?categoria=cadastro

é isso?

Pedrosa

Controlador seria uma classe que controla as ações da aplicação, seria o C do MVC.

http://www.portaljava.com.br/home/modules.php?name=Content&pa=showpage&pid=63

ThomasCouto

Pedrosa:
Controlador seria uma classe que controla as ações da aplicação, seria o C do MVC.

http://www.portaljava.com.br/home/modules.php?name=Content&pa=showpage&pid=63

E com relação a minha segunda pergunta,

index.jsp?categoria=cadastro

onde eu só faço inserir o conteúdo de cadastro na pagina principal…
isso é uma das funcoes do controller?

Pedrosa

Mais detalhes:

https://www.dev.java.net/files/documents/353/17209/design_patterns_j2ee.pdf

Pedrosa

De uma lida melhor no artigo, mas as inclusões ficariam na camada Model geralmente em classes DAO.

Criado 8 de agosto de 2005
Ultima resposta 16 de mai. de 2006
Respostas 20
Participantes 5