não rodas servlets no tomcat 5.0.28

5 respostas
E

Estou usando Windows2000, tomcat 5.0.28.
Defini em variáveis de ambiente:
CATALINA_HOME=C:\Tomcat 5.0
JAVA_HOME=C:\j2sdk1.4.2_03

Tendo rodar os servlets como http://localhost:8080/servlet/arquivoservlet
e acusa o erro:
HTTP Status 404 - /servlet/arquivoservlet

type Status report
message /servlet/arquivoservlet
description The requested resource (/servlet/arquivoservlet) is not available.

Apache Tomcat/5.0.28

Estou colocando os arquivos servlet.java em tomcat 5.0/root/webapps/web-inf/classes

Seguindo instruções do livro core servlet javaserver pages 2nd edtion descomentei o seguinte trecho abaixo do arquivo web.xml da pasta conf, então piora, não roda nem os arquivos jsp que funcionavam posteriormente.

<!–
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

–>

Se alguém puder ajudar, será de grande ajuda

Obs: basta apenas colocar os arquivos .java na pasta classes e ao serem acessados, serão “compilados” e irá ser gerado o .class?

Agradeço
Eliselbert Penha

5 Respostas

E

olah,

bom primeira coisa sobre servlet’s

os arquivos java que estão dentro de WEB-INF/classes que
são suas servlet’s devem ser compiladas, o tomcat não faz isso,
pelo menos nunca vi isso acontecer ateh a versão atual… :roll:

agora tendo a sua servlet compilada dentro de WEB-INF/classes

vamos usar um exemplo Helloword, suporndo uma servlet com esse nome, compilada e dentro do diretorio comentado…

estando nesse ponto, para vc habilitar a chamada do servlet via http
vc deve configurar o arquivo web.xml, dentro da tag web-app

ex.:

// para indicar um servlet 
 &lt;servlet&gt;
  &lt;servlet-name&gt;Helloworld&lt;/servlet-name&gt;  // nome de indentificação
  &lt;servlet-class&gt;Helloworld&lt;/servlet-class&gt;  // classe java compilada 
 &lt;/servlet&gt;

  // para habilitar a chamada http do servlet
 &lt;servlet-mapping&gt;
  &lt;servlet-name&gt;Helloworld&lt;/servlet-name&gt; // nome do servlet
  &lt;url-pattern&gt;/helloworld&lt;/url-pattern&gt; // endereço relacionado
 &lt;/servlet-mapping&gt;

espero que tenha ajudado em algo ai :wink:

[]'s

E

Ok, então:
1º - Como eu compilo a servlet?,estou usando java arquivo.java e acusa o erro: “Exception in thread “main” java.lang.NoClassDefFoundError: arquivo/java” // criei um path para compilar via linha de comando e funciona e os servlets estão na pasta classes.

2º - O correto não seria o tomcat rodar o servlet sem que este tenha que ser definido no web.xml? ou seja, de uma forma genérica?

Obs: mesmo usando uma servlet já compilada, não funciona…
Segue abaixo simples código que estou tentando rodar

import <a href="http://java.io">java.io</a>.<em>;

import javax.servlet.</em>;

import javax.servlet.http.*;

/** Simple servlet for testing the use of packages. */

public class HelloServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType(text/html);

PrintWriter out = response.getWriter();

String docType = <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0” + “Transitional//EN”>\n”;

out.println(docType + <html>\n + <head><title>Hello (2)</title></head>\n + <body>\n + <h1>Olá</h1>\n + </body></html>);

}

}

Agradeço

E

1º - aconselho a vc usar um IDE eclipse ou NetBeans como preferir para desenvolver a aplicação web, fica mais facil pois o IDE jah aponta para as
API’s necessarias para a compilação

2º - o tomcat tem um web.xml generico sim, mas ele não tem autonomia de verificar a sua aplicação web e descobrir se existe algum servlet no modulo web, criando para eles uma representação e uma URL correspondente, por isso na necessidade de impelentar isso no web.xml da sua aplicação, para indicar para o tomcat que existe servlet, representar o mesmo com um nome e nomear uma URL para corresponder ao seu servlet

ps.: existe exemplos de servlets dentro do webapps do tomcat :wink:

C:“Tomcat”\webapps\servlets-examples

http://localhost:8080/servlets-examples

[]'s :lol:

E

Tenho o NetBeans 4.2beta J2EE e nele tem funcionado, mas minha preocupação é que qdo eu me apresente para um trabalho que necessite de conhecimentos em tomcat por exemplo, eu não consiga soluções para estas questões que a princípio parecem simples.
O servlets de exemplo do tomcat assim como os jsp funcionam, daí eu não entendo o que vem acontecendo.
Acho que vou instalar uma versão mais antigo como a abordada pelo core servlet jsp para verificação

Agradeço

E

hum, eu não gostei muito das versões acima da 4.0 por enquanto

ainda uso a versão 3.6 que achu mais estavel…

se quiser eu te mando um exemplinho de uma aplicação web com servlet

me manda o teu e-mail, q eu lhe envio o exemplinho
[email removido]

[]'s

Criado 6 de janeiro de 2005
Ultima resposta 6 de jan. de 2005
Respostas 5
Participantes 2