Servlet+Jsp: Import está OK, mas não funciona

12 respostas
V

Caros amigos,

Eu estou iniciando com o aprendizado do java e esta dúvida surgiu para me atrapalhar. Agradeço qualquer ajuda.

Eu criei uma aplicação bem simples, [color=“red”]com uma classe dentro de um .jar[/color] e uma página JSP. Eu consigo importar o .jar normalmente (o que deve significar que o CLASSPATH está correto), mas não consigo instanciar a classe. Quando eu chamo “http://localhost:8080/MeuTeste”, o erro ocorre.

Observe que eu nem chego a invocar os métodos getCodigo ou setCodigo.

JAVA BEAN:

package pacTeste;

public class Teste {
private String codigo;

public Teste() {
}

public String getCodigo() {

return codigo;

}
public void setCodigo(String i) {

codigo = i;

}

}

PÁGINA JSP:

[color=“blue”]<%@ page contentType=text/html; charset=iso-8859-1 language=java %>[/color]

<html>

<head>

<title>Sistema Teste</title>

<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-1”>

</head>

<body>

[color=“olive”]<!-- Importa o pacote e a classe Teste.   Aqui não dá erro -->[/color]

[color=“blue”]<%@ page import=pacTeste.Teste %>[/color]

[color=“olive”]<!-- O erro ocorre se eu tento inicializar a classe desta forma -->[/color]
[color=“blue”]< jsp : useBean id=“wuf” scope=“page” class=“pacTeste.Teste” />[/color]

[color=“blue”]<%

//O erro também ocorre se eu tento inicializar a classe assim

Teste tst = new Teste();

out.println(Se este texto aparecer, significa que deu certo );

%> [/color]

</body>

</html>

OBSERVAÇÕES:

  • A versão do Tomcat é a 4.1.29 e está funcionando corretamente;
  • O arquivo .jar está dentro da pasta “webapps\MeuTeste\WEB-INF\lib”;
  • Eu criei o context com do Tomcat Admin para a pasta “MeuTeste”;
  • Eu não criei nenhum arquivo .xml dentro da pasta WEB-INF.

ERRO DO TOMCAT:
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: br/com/olicomp/hospital/cadastroWeb/WebUf

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

.

.

.

root cause

java.lang.NoClassDefFoundError: br/com/olicomp/hospital/cadastroWeb/WebUf

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)

.

.

.

12 Respostas

E

eae blz?

q loco isso mano

bom ondi tah o seu .jar?

dentro de WEB-INF/classes???

hum faiz um teste coloca o seu jar dentro de WEB-INF/lib
ao inves da pasta classes do web-inf e faiz um test-drive pra ver
oq acontece :wink:

a principio uma sugestão ridicula, mas vai que funciona :razz:

[]'s
Erko Bridee

V

Cara, como eu disse nas “observações”, o .jar já está na pasta WEB-INF/lib … de fato, acho que ela não seria importada se não estivesse lá.

Valeu a ajuda, mas ainda não é isso.
[ ]'s

V

:oops:
É, no caso o código se refere ao nome real do pacote e da classe: “br/com/olicomp/hospital/cadastroWeb/WebUf”.
Refere-se a um cadastro simples de Estados (UFs) para um hospital.

Só para simplificar é que eu chamei o projeto de “pacTeste/Teste”. Então a StackTrace deve ser lida assim:

exception

javax.servlet.ServletException: pacTeste/Teste

at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

.

.

.

root cause

java.lang.NoClassDefFoundError: pacTeste/Teste

at java.lang.Class.getDeclaredConstructors0(Native Method)

at java.lang.Class.privateGetDeclaredConstructors(Class.java:1610)

.

.

.

Obrigado pela força (e pelo elogiu)
[ ]'s

C

Ae New__Radical, nós (conterrâneos) somos poucos por aqui né? Espero que possamos marcar encontros, virtuais ou não… abraços!

V

Tenho certeza… eu só criei esse construtor pq ele tá no exemplo da apostila… heheh… eu até acho que ele nem precisa existir.

Cara, vou rever todo o código e informo se encontrei alguma coisa. Parece ser a opção mais sensata a seguir.

Bem, obrigado mesmo.

[ ]'s

D

e o web.xml ??? Vc precisa dele…

R

[color=“darkblue”]Olá!
Faz o seguinte teste, crie esse package fora do .jar, coloque-o no WEB-INF/classes e tente rodar…
Caso funcione pode ter certeza que vc está fazendo algo errado na hora de jogar o pacote pro .jar ou ele nao está indo para onde vc quer… OK??

[]'s[/color]

V

Pessoal,

Como eu configuro o web.xml ?

Bem, agora eu consegui instanciar a classe, mas ocorre um erro ao chamar um método.

E

eae blz?

manda o log de erro ai :wink:

[]'s
Erko Bridee

V

Senhores,

Eu revi meu código e a localização dos arquivos… CLASSPATH e tudo mais, e agora está funcionando (Ufa!).

Infelizmente, como eu mexi em muita coisa ao mesmo tempo, não consigo identificar o que estava errado.

Aos que vieram em busca de resolver algum problema semelhante, recomendo rever todos os passos: variáveis de sistema, estrutura de diretórios, declarações “import”, … boa sorte!

Obrigado a todos!

N

Iae meu conterrâneo, parabénssssssssss!!!

Vc fez tudo que podia ter um post com dúvidas: descrição do erro, colocou o código fonte, a stacktrace e muito mais!!! QUE TODOS OS USERS SIGAM O SEU EXEMPLO!!! ( vc leu o meu post na área de iniciantes?! :roll: )

Bem… sobre o erro, verifique se o diretorio é mesmo WEB-INF, pois na stacktrace, está dizendo q é /WebUf .

T+

N

Pouts… foi malzzzz
Sexta-feira… depois do trampo… :oops:

Não será que o .jar está errado?
O contrutor da classe, vc tem certeza que não tem nenhum parametro?! *-)

Criado 11 de setembro de 2004
Ultima resposta 11 de set. de 2004
Respostas 12
Participantes 6