Fórum Mais um problema com o Tomcat #392546
15/12/2010
Instalei o Tomcat na IDE do Eclipse Helios. Funciona, STARTO E BELÊ. Porem quando eu vou rodar o Servlet dentro do Eclipse com o Tomcat startado, me dá um erro assim:Several Ports(8085,8009)required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).Mas antes estava tudo funcionando, mudei a porta do Tom para 8081, removi o server do Eclipse e adicionei outro, mas mesmo assim está dando erro. Essa porta é usada somente pelo tomcat. Inclusive já rodei o Servlet e depois disso continuou a dar esse problema e agora não parou de dar o problema. Cara estou desde ontem para escrever um Servlet simples, com apenas 5 linhas de código e não funciona. Se fosse em Delphi ou C#, sei lá, acho que não teria tanto problemas assim, claro eu sou apenas um iniciante, mas é muita configuração para uma coisa simples. Mas vou tentar e continuar tentando.
Posts
O problema é que seu tomcat está startado por fora.
Mata ele e deixa o eclipse levantar já com asua aplicação. Tudo pela IDE.
Att davi
Já matei. O Tom starta, mas quando eu vou rodar o servlet, me dá esse erro de que a porta 8009 ou a 8081 estão sendo usados. Dessas a única que eu não mexi foi a 8009. Veja só o meu server.xml que eu alterei e não sei se fiz certo. Retirei os comentários.
<?xml version="1.0" encoding="utf-8" ?>
- <Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
- <GlobalNamingResources>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
- <Service name="Catalina">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- <Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
f(clean);
- <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
Se vc tiver usado um executável para instalar o tomcat, pode ser que ele esteja configurado para iniciar automaticamente quando vc liga sua mákina.
Daí pode parecer que o Tomcat starta, mas talvez ele já tivesse startado.
Testa matar o tomcat pelo eclipse e depois por fora, lá nas pastas onde ele fica no C:\existe o shutdown.bat
dá dois cliques para força ainda mais e vc ter certeza q essas portas não estão no ar.
Vc ainda pode no menu iniciar em executar digitar services.msc e conferir se não nada de tomcat ou apache iniciado.
Depois disso vc sobe sua aplicação pelo servidor que vc configurou na sua ide, mas depois de ter dado nele um add Project (clicando c o botão direito no seu servidor na aba servers - do eclipse) e sobe para ver o que acontece. A priori seu server.xml está normal. A impressão realmente que dá é q o tomcat está ou já inicia startado e quando vc sobe pelo eclipse vc acha q ele está subindo o tomcat e está dando erro só na aplicação, e se testar só localhost:8009 ele abre normal (devido ao fato de já estar startado). Ou vc tá subindo o tomcat, pelo eclipse ou por fora se estar c a aplicação lá dentro e depois vc coloca a aplicação e sobe de novo e ele reclama dizendo q a porta já está ocupada.
Confere isso tudo, pode não ser isso (estou de fora e não estou vendo todas suas configurações), mas vamos testar por partes confere todos esses passos que te disse, para depois desconfiarmos de outra coisa.
Att Davi
Vou te dizer como está tudo aqui, se caso esquecer de algo então posso ver pelo meu checklist que vou fazer, baseado no vc me pasou e mais o que eu tenho aqui a fazer.
1-O Tomcat está morto por fora. Coloquei para startar manualmente.
2-No services ele não está iniciado.
3-No eclipse, dei um ADD/REMOVE no meu projeto(BEER, como se chama) e adicionei ao Tomcat
4-Startei o tomcat pelo eclipse(Botão Direito na Aba Servers(inferior) e dou Start)
5-Abro o meu Servlet e dou um RUN. Aí aparece o erro
6-Vou no browser e digito http://localhost:8081/Beer-v.1/form.html e vem um ops...
7-Vou no gerenciador de tarefas do windows e vejo que em serviços o Tom está interrompido
8-Na pasta do Tomcat não vi nenhum shutdown.bat, em nenhuma pasta, mas ele não está startado por fora
9-Não entendi porque ele não está iniciado se está pelo eclipse, a menos q não apareça
10-pelo netstat, não vejo as portas 8081 e 8009 em nenhum processo e ele some muito rápido(o netstat)da tela
Essa é minha situação no momento. Sinceram,ente, não sei o mais o que fazer, não tenho recursos mais.
Pula o passo 5 ele não precisa ser feito.
Coloca primeiro no browser :
http://localhost:8081/Beer-v.1/
Só para se teu web.xml redireciona sua aplicação para alguma página.
Se não coloca seu caminho completo.
Confere se o seu servidor aponta realmente para o seu tomcat 6.
Pois se não me enganovc tinha o 7 instalado será que vc lembrou de configurar seu servidor para o 6?
Att Davi
Davi, na página Servers está assim:
Tomcat v6.0 server at LocalHost[Started,Synchronized]
Se eu colocar http://localhost:8081 não funciona, ou seja, não sobe o Tomcat, mas ontem funcionou algumas vezes e depois parou de funcionar e depois voltou. Hoje não consegui nada. Quanto ao Tomcat 7 eu desintalei ele de meu sistema, agora o interessante é que quando eu instalei o 6 ele criou no diretório da Apache uma pasta Tomcat 7, mas não tem nada funcionado dele. Em uma única situção(Ontem), ainda com 7 eu conseguir subir o HTML pelo tomcat. Fico a pensar, que mesmo eu desinstalando o 7, será que não fica nenhum processo do 7 startado? Será esse o problema? É possível? Mas pelo gerenciador de tarefas não vejo nada do 7, somente o 6.
Achei algo interessante. Peguei meu arquivo web.xml e alterei uma linha que fazia chamada ao Servlet e alterei assim: De SelectBeer.do para BeerSelected.do.
No botão enviar, que conversa com o Servlet, deveria dizer que não foi possível localizar o arquivo BeerSelected.do, mas ao invés disso continua dizendo que não foi possível localizar o arquivo SelectBeer.do, sendo que ele já não está mais no web.xml da pasta WEB-INF. O HTML também está na pasta WEB-INF.
Cara meu conselho agora é vc desinstalar tudo e fazer os passos todos novamente.
Para TomCat 6, configurar tudo denovo, tenta apagar tudo que vc configurou inclusive as variáveis de ambiente.
Faz tudo denovo mesmo.
Para seu Path, segue o que eu te passei naquele post anterior, apontando para a jdk e tudo mais.
Confere bem o seu projeto, o arquivo web.xml dele.
Fica tranquilo que vc vai conseguir, qualquer coisa também lê alguns tutorias do google que vc vai achar uns mil
falando dessa instalação do tomCat. Outra dica a nível de teste é colocar para funcionar, então deixe default
8080, ara o serviço do oracle temporariamente sópara rodar no 8080 e depois que vc fazer a aplicação funcionar vc troca a porta.
Pq aí se der problema vc vai saber que o problema é nessa troca de porta que não está 100%.
Att Davi
Deixao web.xml como estava antes e coloca seu html dentro de webContent.
Att Davi
Vou desinstalar o Oracle 10g XE(8080), desinstalar o Tomcat, reiniciar o PC e reinstalar outra vez. Acha que eu devo instalar o 7 ou não? Sempre gostei de trabalhar com a ponta, mas desde que funcione.
O 6 já está de bom tamanho para vc.
Att Davi
Fiz tudo conforme falamos. O tom está na 8080. Mas no browser ainda não aparece. Mas o erro das portas estando sendo utilizadas, não apareceu, pelo menos ainda. Se eu rodo o servlet, dá erro 404. Logo após dá esse erro, eu rodei e ficou tudo em branco, como se já estivesse funcionando. Abaixo as linhas simples do meu servlet. Retirei apenas os comentários, para diminuir as linhas.
package com.example.web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
class BeerSelect extends HttpServlet {
private static final long serialVersionUID = 1L;
public BeerSelect() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advise<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color " + c);
}
}
Posta seu web.xml e seu html tb.
att davi
Vi uma coisa aí interessante e quero já de antemão te agradecer pelo tempo empreendido para me ajudar a resolver esse post. Eu desinstalei o Tom7 e instalei o 6. Já fiz duas vezes e sempre que eu instalo, ele cria uma pasta Tom7. O que passa que agora, lendo suas dicas e mais a do livro aqui, fui pegar o meu arquivo servlet e colocar numa determinada pasta, observei que ele estava numa pasta do Tom7. Interessante, que quando eu criei a minha estrutura de pastas, no Tom7 também criou, porem eu não instale nada do Tom7. Será que é esse o conflito que está dando? Eu ainda não configurei o meu web.xml, está como instalado pelo Tom.
rapaz rodei sua servlet aqui e realmente ficou tudo branco, o problema não é tomcat não é seu código mesmo.
Esse livro aí já li estou te mandando uma versão de uma app que eu tenho seguindo alguns exemplos desse livro.
Testa aí q seu tomcat do jeito q tá vaoi rolar.
Att Davi