Servlet

10 respostas
C

Olá, não estou conseguindo acessar minha servlet pelo navegador, já mapeei no xml e mesmo assim aparece o seguinte erro:

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Wrapper cannot find servlet class br.com.fj21agenda.servlet.OiMundo or a class it depends on

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

java.lang.Thread.run(Thread.java:595)

root cause

java.lang.ClassNotFoundException: br.com.fj21agenda.servlet.OiMundo

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)

org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)

org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

java.lang.Thread.run(Thread.java:595)

Não sei se estou certo, mas parece q a classe nao é encontrada no caminho q especifiquei no xml,
mas para achar a classe, não deveria compilar o servlet antes???

10 Respostas

F

O arquivo OiMundo.class não esá na pasta

WEB-INF\classes\br\com\fj21agenda\servlet

C

entendi, mas me tira uma dúvida,por favor: para conseguir o .class, eu preciso compilar a servlet, certo?
o problema é q nao consigo compilar o OiMundo.java, pq quando eu tento, da esse erro q mostrei.

F

Beleza, entendi o que você quer dizer.

Uma coisa é acessar, a outra é compilar.
Você está tomando erro quando tenta acessar. Você precisa compilar a classe antes de acessá-la.

Como vc está fazendo para compilar? Usa alguma IDE ou usa o javac direto?

C

estou usando o eclipse versao para Java EE Developers

quando clico no botao de compilar, gera esse mesmo erro q mostrei, quando tento acessar o servlet pelo browser

C

Uma coisa q notei tb, no arquivo web.xml, quando vou maear a servlet, a tag aparece com um sublinhado vermelho abaixo dela,
como se estivesse errado. Antes isto nao acontecia, será algum erro?

F

O seu eclipse está compilando automaticamente? Project/build automatically?

O sublinhado em vermelho do eclipse significa erro, mas
quando interpreta xml, o eclipse as vezes sublinha de vermelho palavras corretas.

Para ter certeza de que não é um erro, recorte o texto inteiro do xml, salve o arquivo, cole o xml de volta, salve o arquivo novamente.
Se o sublinhado era um bug, ele vai sumir.

Poste aqui o seu web.xml.

C

eu nao sei se entendi oq é compilar automaticamente, mas sempre q compilo algo, eu clico no botao verde na parte de cima

meu xml é esse:

<?xml version="1.0" encoding="UTF-8"?> trabalhops CadastrarMembroServlet br.com.trabalhops.servlet.CadastrarMembroServlet
<servlet-mapping>
		<servlet-name>CadastrarMembroServlet</servlet-name>
		<url-pattern>/cadastrarMembro</url-pattern>
</servlet-mapping>	
	
<welcome-file-list>
	<welcome-file>cadastrarMembro.html</welcome-file>				
</welcome-file-list>
F

Dúvida 1:
No seu web.xml não há nenhuma referência a br.com.fj21agenda.servlet.OiMundo.
OiMundo é um servlet ou não? Se for, tem de existir um mapeamento no web.xml.

Dúvida 2:
A opção do menu “Project” / “build automatically” está habilitada?

C

desculpa, postei o xml errado! esse q tem o servlet Oimundo:

<?xml version="1.0" encoding="UTF-8"?> trabalhops Oimundo br.com.trabalhops.servlet.Oimundo
<servlet-mapping>
		<servlet-name>Oimundo</servlet-name>
		<url-pattern>/oi</url-pattern>
</servlet-mapping>	
	
<welcome-file-list>
	<welcome-file>cadastrarMembro.html</welcome-file>				
</welcome-file-list>

Habilitei agora o “build automatically” no menu project

C

aí consegui fazer a servlet rodar no navegador!

nao sei dizer ao certo qual foi o erro, mas fui em window->preferences e alterei a instalaçao do jdk pra uma mais atual

tb fui em window->preferences->servers->runtime enviroments e apaguei instalaçoes de tomcats passadas, aí novamente o tomcat 6.0

quando criei um novo projeto web, criei o arquivo servlet e mapeei no xml, e funcionou!

obrigado mesmo pela sua ajuda fvslistas!

Criado 14 de maio de 2010
Ultima resposta 17 de mai. de 2010
Respostas 10
Participantes 2