Rodar servlet sem o Tomcat

Eu comecei a fazer um projeto pra mim, e coloquei o Tom 7 dentro do eclipse. Ele está dando muito pau, então achei melhor eu rodar o Tomcat 7 por fora do eclipse, mas o problema que mesmo que eu delete o Tomcat de dentro do eclipse, e quando vou rodar o servlet, ele pede o Tom. Como se ficasse algo para trás. Como eu faço isso. Sei que terei de criar minha estrutura de pastas, fora da WEBAPPS do tomcat(hoje fiz dentro dela), e depois como eu testo. É só chamar no browser(http://localhost:8080/minha_pasta/meu_html.html)? É só isso?

Vc vai ter q gerar o WAR do seu projeto, inseri-lo na pasta webapps do Tomcat e em seguida subir o Tomcat. Se o seu projeto não conter erros e tudo for feito corretamente, é só digitar no seu browser:

http://localhost:8080/seuProjeto/seuRecurso

(estou levando em conta que seu Tomcat ta usando a porta padrão 8080)

Uma pergunta, qual a sua complicação de adicionar o Tomcat no Eclipse?

Não funciona nada aqui comigo. Sei que o erro está comigo, mas não sei onde. Eu starto o Tom pelo eclipse, mas no browser não aparece a tela de tá tudo ok. Se starto por fora, ai funciona. Subo o htmal, mas ele não acha o Servlet. Abaixo o meu HTML, ServLet e web.xml.

&lt;html&gt; &lt;body&gt; &lt;h1 align="center"&gt;Página de Seleção de Cerveja&lt;/h1&gt; &lt;form method="POST" action="SelectBeer.do"&gt; Selecione as características da cerveja<p> Color: &lt;select name="color" size="1"&gt; &lt;option value="light"&gt; light &lt;/option&gt; &lt;option value="amber"&gt; amber &lt;/option&gt; &lt;option value="brown"&gt; brown &lt;/option&gt; &lt;option value="dark"&gt; dark &lt;/option&gt; &lt;/select&gt; <br><br> &lt;center&gt; &lt;input type="SUBMIT"&gt; &lt;/center&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;

[code]package com.example.web;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class BeerSelect
    */
    @WebServlet("/BeerSelect")
    public class BeerSelect extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**

    • @see HttpServlet#HttpServlet()
      */
      public BeerSelect() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      response.setContentType(“text/html”);
      PrintWriter out = response.getWriter();
      out.println(“Beer Selection Advise
      ”);
      String c = request.getParameter(“color”);
      out.println("
      Got beer color " + c);
      }

}[/code]

[code]<web-app xmlns=“http://java.sun.com/xml/ns/javaee
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
version=“3.0”
metadata-complete=“true”>

<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>

</web-app>[/code]
Essa é minha estrutura de pastas
WebApps >> Beer-v1 >> WEB-INF >> classes >> com >> example >> web + model (A WEB-INF é classes + lib)
na pasta Beer-v1 eu coloquei o HTML, na pasta WEB-INF eu coloquei o web.xml e na pasta web eu coloquei o BeerSelect.class.
Não tem erro de sintaxe no código so Servlet. A dúvida aui é o comportamento do Tomcat, que não sei se está realmente funcionando, ainda que ele starta(aparentemente). Startado pelo Eclipse, eu não consigo testar no Browser, e se eu dou um RUN no servlet, nada acontece ou dá erro 404. Esse é o problema que eu estou passando. Eu estou aprendendo pelo livro Use a cabeça! Servlets e JSP. Os exercícios são de lá. Eu antes(Uns 7 meses atrás), eu tinha Win XP, Galileo e Tomcat 4 ou próximo disso, já funcionou. Resolvi pegar firme agora, aprender de verdade e estou tendo dificuldade. Win 7, Helios e Tomcat 7.

kkkkk…

Cara, acho que vc tem um problema serio de relacionamento com o Eclipse + Tomcat…; talvez posso ir ateh mais longe, com o Java!!! :slight_smile:

No stress man.

[]'s

já deu uma olhada em uma apostila da Caelum, a FJ-21, o download é free!!

Tem o que vc precisa la!!!

No java-foruns.org, um colega me disse que isso pode ser o Eclipse(Problema), mas não me deu a solução, apenas apontou pro eclipse, desconfiando dele. Eu acho que sim, pois eu vejo todo mundo funcionar e somente eu que não? Mas não tenho muito conecimento assim, para configurar, instalar e etc… no eclipse. Parece coisa do além.

Esse problema pode ter a ver com a JRE escolhida? No meu computador quando eu instalei a SDK, ela criou duas pastas: jre6 e jdk1.6.0_21. Isso tem a ver com o meu problema? Eu tenho escolhido a jre6.

hahaha, concordo com o schranko.

Vai com calma, cara, eu tenho certeza que voce deu CTRL+C, CTRL+V nesse código, olha só:

Porque você está usando essa Annotation?

@WebServlet("/BeerSelect")

Porque voce está enviando o MIME sendo que o text/HTML já é o default?

response.setContentType("text/html");

Porque colocar esse “.do” no mapeamento?

<url-pattern>/SelectBeer.do</url-pattern>

Se fosse eu, eu tirava isso daí. E esse mapeamento esta realmente certo? Quando você coloca a barra, significa que voce esta pegando o que está na raiz, que é o WEB-INF, ja tentou tirar a barra tambem?

E tem uma coisa que me chamou a atenção, você baixou o Tomcat 7? Porque pelo seu XML, voce está usando o Servlet 3.0, olha só:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" [u][b]version="3.0" [/b][/u] metadata-complete="true">
O Tomcat 7.0 não funciona com a especificação do Java6, a Apache liberou a versão, mais a 7.0 só vai funcionar com a JEE6, você tem que subir no Eclipse o Tomcat 6, que é especifica para o Java6.

E sobre esse comentário:

Não é o de todo mundo que funciona, mais o de quem sabe. Se o seu não funciona voce está fazendo alguma coisa errada, e pelo o que dá pra perceber, voce coloca coisas no seu código que você nem sabe o que faz. Se voce não tem muito conhecimento, corre atrás, não adianta vir aqui no GUJ e ficar querendo dar uma de loser, isso é ruim pra você, e até pra comunidade. Faça analises inteligentes e com isso você vai conseguir gerar perguntas inteligentes, que realmente agregam valor para você e para a comunidade.

Analise essas opções que eu lhe dei, reflita, teste e retorne para que nós possamos te ajudar.

Jaba, não é uma questão de dar uma loser. Eu estou acompanhando o Livro: Use a Cabeça! Servlets e JSP. Tudo que eu fiz, eu copiei do livro, porque à medida que vou colocando coisas lá(hoje eu não sei mesmo, por isso estou aprendendo no livro), é o a autora(Kathy Sierra) disse para eu fazer. Após, feito, vem a explicação de linha a linha. Achei estranha a resposta sua. Por você já saber, acho que eu também posso aprender. Em outro forum que eu participo, não tive respostas desse tipo:

Não estou te criticando, eu apenas postei algo que eu ainda não conheço e achei que eu encontraria respostas aqui. Eu agradeço a resposta que vc me deu, vou refletir sim, mas os livros não tem muitas respostas assim, por isso peço ajuda aos colegas daqui e a você também.

Posso ate ter pegado um pouco pesado, mais o que eu falei não deixa de ser verdade.
Voce fala que está seguindo passo a passo o Head First Servlets & JSP, mais lá fala muito pouco sobre Tomcat, e não cita o Eclipse, entao você não copiou tudo do livro. Só seguir o passo a passo do livro não vai te ajudar, você precisa de um pouco de base também.
Agora uma outra questão também, não para arrumar discussão, mais pra te dar uma força também, porque no começo eu ja estive em algumas situações como a sua e sei como é. Você respondeu o tópico só pra dar uma posição em um comentário sobre a minha opnião. O que deveria ser mais importante para você, antes de dar importância pra esse tipo de coisa, que era tentar implementar as possíveis soluções que eu lhe dei, você não tentou.

Eu tentei e não funcionou. Vi que a versão do tomcat era uma para 32/64. Isso poderia estar influenciando o SO de alguma forma. Baixei outra somente para 32 bits. Essa não tinha instalador. Dizipei e coloquei no meu Diretório raiz(C:). Agora é o seguinte. Por fora do eclipse, roda o apache. No eclipse ele starta, porem ao subir no browser vem essa mensagem de erro.

[quote]HTTP Status 404 - /Beer-v1/form.html

type Status report
message /Beer-v1/form.html
description The requested resource (/Beer-v1/form.html) is not available.

Apache Tomcat/6.0.29[/quote]
Ou seja, pela mensagem o browser não encontra o arquivo form.html. Vi a configuração do meu web.xml e está conforme me passaram. Fiz um outro exemplo de algo que funcionou em outro lugar, importei o projeto para o Tomcat, restartei-o e fui no browser e não consegui fazê-lo funcionar, continua a mesma mensagem. Pensei que o Win 7 pudesse estar interferindo, mas não tenho certeza disso. As variáveis JAVA_HOME=C:\Program Files\Java\jdk1.6.0_21, esse é o diretório onde está a minha jdk. A CATALINA_HOME=C:\apache-tomcat-6.0.29, pasta onde descompactei o Tomcat 6. PATH=C:\Sun\SDK\bin;8;%JAVA_HOME%\bin;%CATALINA_HOME%\bin. Fui em Add/Remove do Server e adicionei o meu projeto, que eu chamo de Beer(Dynamic Web Project). dentro desse projeto está o Servlet que se chama BeerSelect. O SelectBeer.do é apenas um nove que o html(cliente) irá ver como se fosse o Servlet. Continuo tentando aqui fazer funcionar. Só quero deixar bem claro, que há uns 7 meses atrá eu testei esse exercícios e outros mais, em linha de comando, seguindo conforme o livro me ia mostrando. Parei de estudar o livro dada aos meus compromissos com meus clientes e agora voltei, mas em um ambiente mais profissional, usando Eclipse, pois é assim, creio eu, que irei trabalhar. Agora antes eu tinha XP e Tomcat 4 ou 5, não me lembro. De lá pra cá muita coisa mudou, instalei o Windows 7, Eclipse Helios, Tomcat 6 e etc… O meu problema por enquanto é só configurar meu ambiente de trabalho. Preciso aprender a fazer isso. É fundamental pra mim.