Configuracao do Tomcat - Não executa servlet

6 respostas
R

Caros amigos Javarianos,

Estou tentando instalar um novo diretorio no Tomcat e os servlets nao estao funcionando de jeito nenhum.
O Tomcat está rodando e todos os servlets da pasta examples sem problemas, porém criei uma pasta no mesmo nível da pasta ROOT com o nome de intranet, dentro desta pasta inclui a pasta WEB-INF e dentro desta inclui uma pasta chamada classes nesta pasta estou inserindo o .class e dentro da pasta WEB-INF inclui um aruiqvo web.xml.
No diretorio de instalacao do tomcat que no meu caso é C: omcat entrei na pasta conf e inclui as seguintes linhas no arquivo server.xml:

<Context path="/intranet"
             docBase="intranet"
             debug="0"
             reloadable="true"
             crossContext="true">
    </Context>

minha estrutura de diretorios ficaram da seguinte forma:

c:Tomcatwebappsintranet (Paginas estáticas - funcionamento ok)

c:TomcatwebappsintranetWEB-INF (local onde esta a web.xml)

c:TomcatwebappsintranetWEB-INFclasses (local onde está meu .class)

Estou utilizando servlet HelloWorldExample.class que eu copiei da pasta examples onde o mesmo funciona perfeitamenente.

Depois disso já parei o sevico do tomcat no painel de controle, já executei o shutdown.bat e o startup.bat, já reiniciei a máquina e nao tem nada que faça o servlet funcionar nesta pasta nova que eu criei.
Ja não sei mais o que fazer, conto com a ajuda de vocês já tentei dezenas de vezes e nada. Tambem ja tentei executar o servlet sem o arquivo web.xml e sem as alteracao no arquivo server.xml, mesmo assim nao deu em nada.
Um grande abraco, aguardo uma resposta,

Rodrigo G. Tavares de Souza

Segue abaixo a configuracao do meu arquivo web.xml

<?xml version=“1.0” encoding=“ISO-8859-1”?>

<!DOCTYPE web-app
PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
http://java.sun.com/dtd/web-app_2_3.dtd”>

<web-app>

&lt;display-name&gt;Intranet&lt;/display-name&gt;
&lt;description&gt;
  Bem vindo a Intranet
&lt;/description&gt;

&lt;servlet&gt;
   &lt;servlet-name&gt;
      OlaMundo
   &lt;/servlet-name&gt;
   &lt;servlet-class&gt;
        HelloWorldExample
    &lt;/servlet-class&gt;
&lt;/servlet&gt;

</web-app>

6 Respostas

R

Caros amigos encontrei neste grupo a resposta para este problema,
segue abaixo a solucao… Valeu galera

Autor da Msg: Marcelo Vidigal

Bom, não vou perder tempo, faço parte de várias listas e a dúvida que
mais vejo e como configurar uma aplicação no tomcat, como a maioria das pessoas que tenho lido na lista reclamam que as dicas que foram dadas nas listas não funcionaram com eles e como elas também não funcionaram comigo aí vai como configurei uma aplicação no tomcat sem os constumeiros problemas. Na verdade é muito simples configurar, mas como eu outras pessoas devem ter sofrido por certos passos não funcionarem com elas. Primeiro tentei criar o contexto no
server.xml e nada. Criei a pasta da aplicação com web-inf/classes e
nada, aqui por exemplo a primeira vez que criei, os arquivos na pasta foram enxergados pelo tomcat mas nada dos servlets serem executados. Mudei o involker descomentando o trecho no web.xml e nada. Então apanhei tentando de tudo até que finalmente consegui com um detalhe que não aparece em nehuma das dicas que vi em listas sobre servlet.

Bom aí vai:

1- Crie a pasta com o nome da aplicação mais os subdiretórios /WEB-
INF/classes. Parece que pode ser uma pasta em quanquer lugar do micro
mas não tentei isso ainda. No meu caso criei a pasta abaixo de
webapps.

2- Crie um contexto para sua pasta no server.xml nesse formato, você
coloca ele logo acima do contexto da pasta examples pra não correr o
risco de colocar no lugar errado:
<Context path="/suaaplicacao" docBase=“suaaplicacao” debug=“0”
reloadable=“true” crossContext=“true”/>

3- Remove o trecho comentado do web.xml principal, ambos server.xml e

web.xml estão na pasta conf, o trecho é o seguinte, basta descomentar:

<!-- The mapping for the invoker servlet -->

<servlet-mapping>

<servlet-name>invoker</servlet-name>

<url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

[color=“red”]“comentario Rodrigo: este para mim foi o passo principal”[/color]

4- Por fim o pulo do gato que vai fazer tudo isso funcionar: coloque o
seguinte endereço no navegador:
http://localhost:8080/manager/install?
path=/suaaplicacao&war=file:/suaaplica
cao

onde file:/suaaplicacao é o caminho para sua aplicacao no disco, no
caso acima a sintaxe nao especifica disco e caminho completo pq a
pasta esta abaixo de webapps, pronto agora é só rodar suas
aplicações, se testarem com outro caminho que nao seja o abaixo da
pasta webapps e funcionar por favor me avisem.

Espero que este tutorial seja util a todos que tiveram as
dificuldades que eu tive e a todos que precisarem.

Elvis.The.Pelvis

Nããããããããããããão. Javarianos nãããããããããããããão. Já basta me chamarem de delphianos AAARRRRRRGGGGGHHHHHHHHHHH!!! :smiley:

R

Queria saber porque o servlet HelloWorldExample.class não está discriminado no arquivo de distribuição WEB.xml no diretoria Examples e funciona perfeitamente?

landir

Apareceu este erro aqui
eu configurei assim:
no conf/server.xml eu coloquei a linha
<Context path="/livraria" docBase="/home/user/java/loja" reloadable=“true”/>

e em /home/user/java/loja/WEB-INF/web.xml eu coloquei as linhas
<?xml version=“1.0” encoding=“ISO-8859-1”?>
<!DOCTYPE web-app
PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
http://java.sun.com/dtd/web-app_2_3.dtd”>

<web-app>

<servlet>

<servlet-name>MeuServlet</servlet-name>

<servlet-class>HelloWorldExample</servlet-class>

</servlet>

<servlet-mapping>
<servlet-name>MeuServlet</servlet-name>
/meu
</servlet-mapping>

</web-app>

e
em /home/landir42u/java/loja/WEB-INF/classes eu copiei o arquivo HelloWorldExample.class que vem no webapps/examples/WEB-INF/classes
e pelo menos a url http://localhost:8080/loja funciona, mas a url para executar a classe seria qual? eu tentei
http://localhost:8080/livraria/meu
e apareceu:
Apache Tomcat/4.0.3 - HTTP Status 500 - Internal Server Error

type Exception report

message Internal Server Error

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

exception

java.util.MissingResourceException: Can’t find bundle for base name LocalStrings, locale en_US

at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:712)

at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:604)

at java.util.ResourceBundle.getBundle(ResourceBundle.java:559)

at HelloWorldExample.doGet(HelloWorldExample.java:25)

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

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

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012)

at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)

at java.lang.Thread.run(Thread.java:484)

e eu tentei tambem:
http://localhost:8080/livraria/servlet/meu
http://localhost:8080/livraria/HelloWordExample
http://localhost:8080/livraria/servlet/HelloWordExample
e apareceu:
Apache Tomcat/4.0.3 - HTTP Status 404 - /livraria/servlet/meu

type Status report

message /livraria/servlet/meu

description The requested resource (/livraria/servlet/meu) is not available.

e eu tentei tambem:

landir

Eu consegui executar a classe, mas tambem, so executo ela, eu terei que mapear todas as classes? nao seria melhor eu mapear tudo assim como no diretorio webapps/examples la qualquer classe que eu jogo automaticamente ja eh mapeada com o nome da propria classe, como eu faria isso no arquivo web.xml da minha aplicacao?

S

Fiz as alterações recomendadas acima mas quando clico no botão pra gravar no banco de dados, ele deveria me retormar uma página jsp com o resultado atual, mas me retorna uma tela em branco como se minha tela de retorno fosse nula. Fiz até um mapping pro servlet mas deu no mesmo. Segue os respectivos códigos:

web.xml:

&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;

&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http&#58;//java.sun.com/j2ee/dtds/web-app_2.2.dtd"&gt;


&lt;web-app&gt; 
      &lt;servlet&gt; 
        &lt;servlet-name&gt;CadastrarCliente&lt;/servlet-name&gt; 
       &lt;servlet-class&gt;dir.CadastrarCliente&lt;/servlet-class&gt; 
      &lt;/servlet&gt; 
     
     &lt;servlet-mapping&gt; 
        &lt;servlet-name&gt;CadastrarCliente&lt;/servlet-name&gt; 
       &lt;url-pattern&gt;/servlet/CadastrarCliente&lt;/url-pattern&gt; 
      &lt;/servlet-mapping&gt; 
     
     
&lt;/web-app&gt;

o servlet:

/**
  Servlet utilizado para salvar as informações de um novo cliente no banco de dados
 */
package dir;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class CadastrarCliente extends HttpServlet
&#123;
	public void doGet&#40;HttpServletRequest request, HttpServletResponse response&#41; throws ServletException
	&#123;
		//Obtem as informações do formuário pela request
		String nome = request.getParameter&#40;"nome"&#41;;
		String endereco = request.getParameter&#40;"endereco"&#41;;
		String rg = request.getParameter&#40;"rg"&#41;;
		String cpf = request.getParameter&#40;"cpf"&#41;;

		// Instancia um objeto cliente
		Cliente novo = new Cliente&#40;nome, rg, cpf, endereco&#41;;

		// Salva as alterações no banco de dados através da interface Database
		try
		&#123;
			Database db = new MySQL&#40;&#41;;
			db.getConnection&#40;&#41;;
			db.saveCliente&#40;novo&#41;;
			db.closeConnection&#40;&#41;;
			response.sendRedirect&#40;"../Clientes.jsp"&#41;;
		&#125;
		catch&#40;Exception e&#41;
		&#123;
			e.printStackTrace&#40;&#41;;
		&#125;
	&#125;
&#125;

o jsp:

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Locadora - Cadastro de Clientes&lt;/title&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;h1 align="center"&gt;Cadastro de Clientes&lt;/h1&gt;
&lt;form name="form1" method="get" action="servlet/CadastrarCliente"&gt;
  &lt;table width="800" border="0" align="center"&gt;
    &lt;tr&gt; 
      &lt;td&gt;Nome&#58; &lt;/td&gt;
      &lt;td&gt;&lt;input name="nome" type="text" id="nome" size="50" maxlength="100"&gt;&lt;/td&gt;
      &lt;td&gt;RG&#58;&lt;/td&gt;
      &lt;td&gt;&lt;input name="rg" type="text" id="rg" size="20" maxlength="20"&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt; 
      &lt;td&gt;Endere&amp;ccedil;o&#58;&lt;/td&gt;
      &lt;td&gt;&lt;input name="endereco" type="text" id="endereco" size="50" maxlength="200"&gt;&lt;/td&gt;
      &lt;td&gt;CPF&#58;&lt;/td&gt;
      &lt;td&gt;&lt;input name="cpf" type="text" id="cpf" size="20" maxlength="20"&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
  &lt;p align="center"&gt;
    &lt;input type="submit" name="Submit" value="Cadastrar"&gt;
  &lt;/p&gt;
&lt;/form&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
Criado 16 de janeiro de 2003
Ultima resposta 24 de set. de 2003
Respostas 6
Participantes 5