[color=blue][/color]
Olá galera do guj. Sou novo aqui na área e tô apanhando a mais de 15 dias tentando fazer minha aplicação rodar no tomcat 6.0.20 à unha. Primeiro eu apanhei para fazer o meu contexto funcionar. Antes nem isso eu conseguia. Agora não consigo rodar meus servlets nem com muito esforço. Já tentei várias àrvores de diretórios e não dá certo. Vou colocar aqui duas das minhas tentativas.
OBS. As variáveis de ambiente já estão corretamente configuradas.
Esta funcionou o contexto e a página index.jsp foi chamada
Eu criei uma aplicação ou contexto de aplicação chamado minhaApp cuja àrvore de diretórios é a seguinte:
C:
\Documents and Settings
\WAGNER
\Desktop
\minhaApp
\src (dentro do minhaApp)
alomundo.java (dentro do src)
\web (dentro do minhaApp)
index.jsp (dentro do web)
teste.html (dentro do web)
\WEB-INF (dentro do web)
minhaApp.xml (dentro do WEB-INF)
\lib (dentro do WEB-INF)
\classes (dentro do WEB-INF)
alomundo.class (dentro da classes)
Criei esta estrutura. Aí eu li em um tutorial que deve ser criado um arquivo xml dentro da pasta conf\catalina\localhost um arquivo com o mesmo nome do contexto da aplicação, neste caso minhaApp. Pois bem, o arquivo ficou o seguinte:
<?xml version="1.0" encoding="iso-8859-1" ?>
<Context path="/minhaApp" docBase="C:\Documents and Settings\WAGNER\Desktop\minhaApp\web" reloadable="true" crossContext="true" debug="3" />
Blz. Aí depois eu criei o arquivo minhaApp.xml como descrevi na minha árvore de diretórios. O arquivo ficou assim:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Desenvolvimento</display-name>
<description>
Descritor do contexto de desenvolvimento.
</description>
<servlet>
<servlet-name>alomundo</servlet-name>
<servlet-class>
alomundo
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>alomundo</servlet-name>
<url-pattern>/alomundo</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Olhei os logs do TomCat e não há nenhum erro. Aqui está o código da classe alomundo.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class alomundo extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
String alo = "Alô Mundo!";
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body><h1>" + alo + "</h1></body>");
out.println("</html>");
} // doGet
} // class AloMundoServ
Quando chamo o contexto, o browser mostra corretamente a página index.jsp. Quando chamo o servlet de acordo com a URL definida dá a mensagem 404 ou aparece isto
Não é possível encontrar: “http://localhost:8080/minhaApp/alomundo” Erro - Não é possível encontrar o Servidor
e olha que quando eu chamo apenas http:/localhost:8080 aparece diretinho a página do tomcat.
Já a segunda tentativa foi criar a aplicação dentro da pasta webapps. Desta vez a pasta chama-se myprog. Desta forma nem o a página index.jsp aparece. Dá erro logo de cara. Como o primeiro projeto é bem parecido com a maioria dos que eu já criei vou colocar apenas o arquivo de contexto desta aplicação colocado dentro do diretório conf\catalina\localhost e um erro que aparece no log do tomcat.
<?xml version="1.0" encoding="iso-8859-1"?>
<Context path="/myprog" docBase="C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\webapps\myprog\web"
reloadable="true" crossContext="true" debug="3"/>
O erro que aparece no log.
20/07/2009 21:59:32 org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.16.
20/07/2009 21:59:32 org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
20/07/2009 21:59:33 org.apache.coyote.http11.Http11AprProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
20/07/2009 21:59:33 org.apache.coyote.ajp.AjpAprProtocol init
INFO: Initializing Coyote AJP/1.3 on ajp-8009
20/07/2009 21:59:33 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1423 ms
20/07/2009 21:59:33 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
20/07/2009 21:59:33 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.20
20/07/2009 21:59:34 org.apache.catalina.startup.HostConfig deployDescriptor
WARNING: A docBase C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\webapps\myprog\web inside the host appBase has been specified, and will be ignored
20/07/2009 21:59:34 org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
20/07/2009 21:59:34 org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
20/07/2009 21:59:34 org.apache.catalina.startup.Catalina start
INFO: Server startup in 1144 ms
Aparece a mensagem:
WARNING: A docBase C:\Arquivos de programas\Apache Software Foundation\Tomcat 6.0\webapps\myprog\web inside the host appBase has been specified, and will be ignored
Neste exemplo usei esta classe chamada TestingServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class TestingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>TESTING SERVLET</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Welcome to the Servlet Testing Center");
out.println("</BODY>");
out.println("</HTML>");
}
}
E o arquivo web.xml ficou o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Desenvolvimento</display-name>
<description>
Descritor do contexto de desenvolvimento.
</description>
<servlet>
<servlet-name>Testing</servlet-name>
<servlet-class>
TestingServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Testing</servlet-name>
<url-pattern>/servlet/Testing</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
POR FAVOR ME AJUDEM.