Problema com servlet!

9 respostas
marciocamurati

Olá !

To com um problema criei um Servlet, e coloquei ele no ar, configurei o Web.xml, mas quando rodo ele recebo o seguinte erro:

exception

javax.servlet.ServletException: Error allocating a servlet instance

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

LocaWebValve.invoke(LocaWebValve.java:101)

org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)

org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)

org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)

org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)

org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)

org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

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

Alguem tem idéia do que pode ser ?

O web.xml está assim:

<servlet>
    <servlet-name>ServletHelpDesk</servlet-name>
    <servlet-class>ServletHelpDesk</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>ServletHelpDesk</servlet-name>
    <url-pattern>/servlet/ServletHelpDesk</url-pattern>
</servlet-mapping>

Valeu galera !

9 Respostas

M

Não sei se o problema é exatamente esse e se não estou falando bobagem :frowning: , mas acho que o servlet-class deve conter o nome completo da classe (exemplo: br.org.servletes.TestServlet)
Pelo menos eu nunca vi sem esse formato.

marciocamurati

Bom, pelo que eu sei não é necessário colocar o nome completo para que ele funcione corretamente tanto que na maioria dos casos é colocado apenas o nome, alguém sabe dizer o porque disso ?

E ainda não consegui fazer o servlet funcionar tenho mais 4 nesse mesmo servidor no mesmo web.xml que estão funcionando perfeitamente, só este é que está me dando dor de cabeça e eu não sei onde está o erro dele.

I

Se o seu servlet estiver num package…
lá em cima dele estiver

package br.com.bla

você vai ter que chamar a classe dele de
<servlet-class>br.com.bla.SeuServlet</servlet-class>

marciocamurati

Entendi, mas ele não está em um package não, agora a noite vou tentar fazer funcionar novamente é muito estranho não tem nada errado esse erro pode ser algo de errado na hora da copilação mesmo sendo copilado ou não é erro de configuração do web.xml mesmo?

O unico package q uso é o servlet como segue abaixo:

package Servlet;
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

Novas sugestões?

I

&lt;servlet-class&gt;Servlet.NomeDaClasse&lt;/servlet-class&gt; lá embaixo em url-pattern &lt;url-pattern&gt;/Servlet/Nome&lt;/url-pattern&gt;

Tenta ai, qualquer coisa posta ae denovo…

marciocamurati

Se mudar o servlet para Servlet ele não localiza os arquivos, fiz uma mudança o xml está assim:

&lt;servlet&gt;
        &lt;servlet-name&gt;ServletHelpDesk&lt;/servlet-name&gt;
        &lt;servlet-class&gt;servlet.ServletHelpDesk&lt;/servlet-class&gt;
    &lt;/servlet&gt;
...
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;ServletHelpDesk&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/servlet/ServletHelpDesk&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;

Decalrei também no inicio do meu Java o package mas não resolveu nada tambem:

package servlet;

Sugestões por que tá dificil !

Diogenes

Continua o mesmo erro?
Como está a definição da sua classe servlet?
Vc tem seu .class dentro do diretorio WEB-INF/classes/servlet ?

marciocamurati

Está dessa forma:

  • WEB-INF
    |_ classes
    |_ lib
    |_ logs
    |_ web.xml

Agora de manhã funcionou ! Oque eu fiz, tirei o package do arquivo e tirei o servlet.nome da class do arquivo de contexto ou seja voltei tudo a como era antes de eu fazer esse monte de pergunta e que não funcionava, ou a LocaWeb tava em rolada ou sei não alguém tem alguma explicação para algo desse tipo ?

Valeu pela ajuda galera !

[]s a todos !

Diogenes

Acho que não! :smiley:

Criado 26 de janeiro de 2005
Ultima resposta 27 de jan. de 2005
Respostas 9
Participantes 4