Tomcat, tem melhor?

43 respostas
A

Olá pessoal, estou triste com o tomcat.
Estou usando IntelliJ e configurei o tomcat 5.5.17 para ficar testando aqui na minha maquina. Porem, fico muito dando stop e start apos cada mudanca boba que eu faco. Tem hora que ele nao da stop , e o endereco localhost:8080 fica travado,ou seja, o tomcat nao libera a porta para iniciar o servidor novamente.

Gostaria de saber se tem solucoes boas para meu projeto. Uso

Mentawai;

Hibernate;

DisplayTag;

Sitemesh;

IntelliJ

Flw!

43 Respostas

felipesp

Não o sei se resolve o seu problema, mas para mim melhora:

Tenho uma dúzia de contexts que desenvolvo. Todos dependem de uma mesma biblioteca também desenvolvida internamente.

Quando estou desenvolvendo posso manter os 12 contexts ligados no tomcat, mas para melhorar o desempenho só faço deploy daquele que vou usar. Os demais eu retiro completamente do tomcat. Isso é importante, pois tem programador que deixa os context descriptors no $TOMCAT_HOME/conf/Catalina/localhost, e isso deixa o tomcat mais lento para iniciar.

Outra coisa importante: se a mudança no context é boba, atualize a bobeira e dê um reload no context somente. Mesmo alterações de classe ou libraries são atualizadas com este procedimento, que só não funciona se o lib estiver no $TOMCAT_HOME/common/lib.

Espero que fique mais rápida sua experiência com o Tomcat.

Z

Cara,

Eu nunca gostei do tomcat…
Sempre uso o JBOSS. Nunca me deixou na mão.

É a minha opinião!

felipesp

zanatto,

Desculpe a ignorâcia:

Se eu tiver uma aplicação simples, que funcione como um context do tomcat, qual é a vantagem de se usar o JBOSS?

Eu penso que o JBOSS é útil se eu precisar de um servidor de EJB…

Obrigado.

Z

Fala Felipe,

Eu acho o JBOSS mais robusto do que o Tomcat.
Start e Stop são bons e nunca perduram minha porta HTTP.

Já que o tomcat é só um container Servlet e JSP, como diz a página oficial.
E o JBOSS é isso e mais um pouco. Fico com o mais completo mesmo.

Só dei a minha opinião…
Acho que o tomcat é bom também, por ser mais leve.

Cada um deve usar o que acha melhor!
:slight_smile:

Aqui no trabanho eu uso o Oracle Application Server 10g, muito show!
Esse com certeza resolve os problemas de qualquer um! Só que pago! E bem caro por sinal!
:shock:

fmeyer

os problemas de hotdeploy sao gerados basicamente pelos classloaders que os AS implementam, até hoje nao vi nenhum que funcionasse direito, nem toncat, JBOSS, WEBSphere,

o melhorzinho … mas nao muito melhor é o loader do Weblogic.

bonfarj

tem plugin pra usar o jetty no eclipse?

bonfarj

Legal isso, vou ver se testo… muito obrigado! :slight_smile:

alexandremlima

Até onde eu saiba, o JBoss usa o Tomcat internamente para gerenciar os serviços web.
No site do JBoss tem assim: “JBoss AS is the #1 Java application server on the market. What makes it even better is the fact that it integrates Hibernate, Apache Tomcat, EJB 3.0, and JBoss Cache into its microkernel foundation so you don’t have to.”
Se ele usa o Tomcat como gerenciador de web então o problema deve ser impressão de vocês ao usar os produtos. Ou não… Sei lá… :smiley:

dbispo

Só lembrando que, no final das contas, tomcat ou jboss para jsp não dá lá muita diferença… Afinal de contas, o jboss tem o tomcat embutido para rodar páginas…
Para desenvolver eu uso uns plugins do eclipse que se integram com o tomcat… Acho muito bom. Com debug e sem precisar ficar parando e iniciando o serviço 8) (ele recarrega o contexto, pelo que parece).

Z

Imagine que você fosse um dono de empresa e que precisa de um appServer para suportar suas aplicações web.

Você colocaria o tomcat?

Eu colocaria pelo menos algum que esteja nesse link:
http://java.sun.com/j2ee/compatibility_1.4.html

Se você colocaria, então para tudo.
Pois não conheço nenhuma empresa boa que usa tomcat para aplicações importantes. Tem que ter muito peito para isso…

Comece a desenvolver suas aplicações em appServer bons também.

Desenvolver no tomcat e depois mandar para outro appServer é uma dor de cabeça…

Eu só gosto do Tomcat somente para coisas simples, pois ele é muito leve.
Para coisas mais complexas eu uso o JBOSS, justamente para não ter que fazer gambiarras no tomcat…

A

zanatto:
Imagine que você fosse um dono de empresa e que precisa de um appServer para suportar suas aplicações web.

Você colocaria o tomcat?

Eu colocaria pelo menos algum que esteja nesse link:
http://java.sun.com/j2ee/compatibility_1.4.html

Se você colocaria, então para tudo.
Pois não conheço nenhuma empresa boa que usa tomcat para aplicações importantes. Tem que ter muito peito para isso…

Comece a desenvolver suas aplicações em appServer bons também.

Desenvolver no tomcat e depois mandar para outro appServer é uma dor de cabeça…

Eu só gosto do Tomcat somente para coisas simples, pois ele é muito leve.
Para coisas mais complexas eu uso o JBOSS, justamente para não ter que fazer gambiarras no tomcat…

Zanatto, Vou baixar o JBoss.
Ele realmente é superior ao Tomcat?
Estou no aguardo para instalar…

Z

Na minha opinião é melhor.
Mas você vai ver que essa briga vai longe. Sempre vão surgir outros argumentos pela frente. eheheh

Boa sorte cara!

A
seufagner:
Não tive problemas com o JBoss* nem com o WebSphere, que é o mais robusto que trabalhei.. Levo em consideração que o Weblogic não tem problema, embora a forma como o ambiente é estruturado aqui não torne o hot deploy algo interessante... *Com Tomcat não rola! Já com o Jetty embebido ficou filé demais.. De repente no Tomcat 6, que não testei de modo profícuo, deve estar melhor...
Baixei o Jetty. O Tomcat eu aponto para um pasta e vou trabalhando, nao preciso ficar start-stop, mesmo mudando uma class. Como resolvo isso no Jetty? E como fazer algo semelhante a isso no Jetty.
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>
A
zanatto:
Na minha opinião é melhor. Mas você vai ver que essa briga vai longe. Sempre vão surgir outros argumentos pela frente. eheheh

Boa sorte cara!


[url]http://labs.jboss.com/portal/jbossas/download[/url]
Qual desses voce recomenda/Trabalha?

É recomendavel fazer isso:
&lt?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt

&lt;Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3"&gt;
	&lt;Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" /&gt;
&lt;/Context&gt;
Como faço com o tomcat?
Z

Tenta o 4.0.5

Em casa estou com o 4.0.4.
Vou ver se faço um upgrade…

Aqui no trabalho eu uso o Oracle Application Server 10g.
(Dá pra baixar no site da Oracle para estudos também)

A

zanatto:
Tenta o 4.0.5

Em casa estou com o 4.0.4.
Vou ver se faço um upgrade…

Aqui no trabalho eu uso o Oracle Application Server 10g.
(Dá pra baixar no site da Oracle para estudos também)

Para que server o Oracle App Server?

A

Hahaha…Na instalacao do JBoss…ele pergunta:
all
Default
EJB
.
.
.
Tomcat.

Ou seja, se eu escolher tomcat , vou estar no mesmo problema inicial, neh??

Qual a melhor opcao para meu uso, citei o que uso la no inicio do topico.

Flw Pessoal

A
seufagner:
afsrj:
seufagner:
Não tive problemas com o JBoss* nem com o WebSphere, que é o mais robusto que trabalhei.. Levo em consideração que o Weblogic não tem problema, embora a forma como o ambiente é estruturado aqui não torne o hot deploy algo interessante... *Com Tomcat não rola! Já com o Jetty embebido ficou filé demais.. De repente no Tomcat 6, que não testei de modo profícuo, deve estar melhor...
Baixei o Jetty. O Tomcat eu aponto para um pasta e vou trabalhando, nao preciso ficar start-stop, mesmo mudando uma class. Como resolvo isso no Jetty? E como fazer algo semelhante a isso no Jetty.
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>

Existe versoes que facilitam, voce baixa os mesmos ja integrados, assim como a versão que vem com o Tomcat..

http://jetty.mortbay.org/jetty5/download.html

http://jetty.mortbay.org/jetty5/download.html

Ja baixei amigo.
O que eu gostaria é de saber como aponto para o meu projeto ao inves de cada mundaca tem q colocar meu projeto no webapp.
Assim fica mais facil, voce nao acha?

Z

afsrj:
Hahaha…Na instalacao do JBoss…ele pergunta:
all
Default
EJB
.
.
.
Tomcat.

Ou seja, se eu escolher tomcat , vou estar no mesmo problema inicial, neh??

Qual a melhor opcao para meu uso, citei o que uso la no inicio do topico.

Flw Pessoal

Ele usa o tomcat, mas tem modificações deles…

Se você pensar, todos os appServer usam o Apache.
Isso quer dizer que são todos iguais?

Z

afsrj:
zanatto:
Tenta o 4.0.5

Em casa estou com o 4.0.4.
Vou ver se faço um upgrade…

Aqui no trabalho eu uso o Oracle Application Server 10g.
(Dá pra baixar no site da Oracle para estudos também)

Para que server o Oracle App Server?

É o servidor de aplicações J2EE da Oracle
Pode baixar de graça se for para estudos…

zetamayossi

Cara, pelo que eu tenho lido aki seu problema tá sendo produtividade, certo?!

Li ai em cima de um dos camaradas falando sobre JBoss. Bem, concordo quando fala-se em robustes do server. É realmente violenta.

Jetty pode ser uma solução tbm…

Mas como você tava usando o TomCat e ele tá imbutido no JBoss pode ser você continue com esse problema…

O fato é que pode ou nao ter o problema, entendeu?! Basta vc saber corretamente como quer trabalhar…

Eu trabalho com HotDeploy no JBoss, ou seja, nao preciso ficar dando start-stop toda hora no server, a nao ser, por exemplo, como uso Hibernate, fazer alguma alteração nos objetos persistentes ou mapeamentos, pq dai num tem jeito.

Mas o que acontece é que vc tem que configurar. Daí nao importa o appServer… São mais ou menos compativeis os que conheço…

Num sei qual a sua duvida realmente, mas posso t passa uma configuração bem rápida de como trabalhar …

Caso sua dúvida seja otra…bem, fica aki então meu parecer!!

fmeyer

jboss é muito mais pesado e demora mais pra deploy que o tomcat/jetty.

Um J2EE appserver só é recomendado quando voce utilize alguma coisa que necessite ele, como ejb, jms, … não existe vantagem pra usar um AS pra desenvolver paginas web que rodam em um servlet container comum.

Para fazer um teste sem depender de IDE para subir o tomcat

crie um arquivo myapp.xml no seguinte diretorio
[$path_to_concat]/apache-tomcat-5.5.17/conf/Catalina/localhost

adicione a seguinte linha no arquivo

&lt;Context path="/minhaapp" docBase="/home/development/java_workspace/jforum_hibernate" debug="0" reloadable="true"/&gt;

e inicie o tomcat por linha de comando.
quando executar alguma alteracao no source o tomcat vai atualizar sua pagina.

para testar utilize o http://localhost:8080/minhaapp

A
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>
A
Fernando , eu uso assim. Qual a diferenca de desempenho entre a minha e a sua?
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>
C

pra trocar o tomcat pelo jetty, eu tenho q mudar alguma configuração na minha aplicação?
se ela roda bem no tomcat, com o jetty será a mesma coisa?
eu queria ter a mesma aplicacao nos dois servers.

flw,

C

testei a versão 6,
funcionou bem,
só não consegui colocar como serviço do windows, eu li que a versão 5 tem isso, mas na 6 não achei.

alguém sabe como colocar como serviço? é apenas um arquivo .jar normal

bebad

Caras eu ouvi falar muito sobre o GlassFish, alguem tem opiniao sobre ?

otaviofcs

Sei o que você tá falando, mas isso é um problema do tomcat no windows. Vc usa windows, né? No linux não tem esse problema. A única coisa é que para não perder a sessão a cada reload de aplicação (utilizo a task do ant para isso) eu só consigo com o tomcat até 5.5.9 (tanto windows quanto linux). Não me pergunte porque, mas não consigo isso em quase todas as versões posteriores e por isso resolvi ficar com a 5.5.9 que pra ambiente devel não tem problema nenhum. Confesso que posso estar defasado pois já deixei de ficar acompanhando faz um tempo.

Já o jBoss é bem legal para quem precisa mais que um servlet container. É bom mesmo mas pesa mais na máquina também (ainda mais se for seu desktop).

abraços

bebad

Um camarada falou assim:
O Jboss só tem duas alegrias:

  1. Quando você consegue instalar.
  2. Quando você consegue Desinstalar.
cv1

Tem uma alegria melhor ainda sobre o JBoss e o Tomcat: saber que tem coisas melhores por ai :wink:

bebad

ou veio, esse site ai q ta na sua assinatura, vc quem fez ?

E

Gente,

Vc´s estão falando que o TomCat não é tão bom, agora eu fiquei preocupado. A minha empresa esta começando a desenvolver uma aplicação para web, antes era só Desktop, pois por isso não temos tanta experiencia em servidores de web.
Eu estou usando o TomCat la na empresa, mas agora com esse tópico fiquei preocupado se o TomCat vai aguentar o tranco. Imagino eu que site possa ter umas 50 a 100 visitas por minuto e não serão coisas tolas, por exemplo, pegar coisas do banco e exibir na tela. Terá uns pequenos calculos.

Será q vale a pena eu começar a usar o JBoss? Uma aplicação rodando no TomCat, é só passar para o JBoss e usar? ou tem MUITA configuração para fazer???

Abraços,
claudio Escudero

otaviofcs

O guj usa tomcat, pelo menos da última vez que deu pau, eu vi :). De vez em quando cai, mas aguenta beeem mais que 100 requisições por minuto (o pessoal é frenético :-o ).

Escudero:

Será q vale a pena eu começar a usar o JBoss? Uma aplicação rodando no TomCat, é só passar para o JBoss e usar? ou tem MUITA configuração para fazer???

Sim, vale à pena, sem muita configuração, só a do próprio jBoss, Pode continuar desenvolvendo no Tomcat (ou no jetty)…

Eu tenho um cliente que usa Websphere c/ Windows e toda vez que o garbage collector entra em atividade porque o consumo de memória tá alto acaba parando o servidor… Isso quer dizer que não é porque você tem um bom servidor jee que não vai dar m… Claro que isso também é um problema de SO, se eles estivessem no linux com certeza isso não aconteceria por conta do gerenciamento de memória ser mais (e bota mais nisso) eficiente.

E

O guj usa tomcat, pelo menos da última vez que deu pau, eu vi :). De vez em quando cai, mas aguenta beeem mais que 100 requisições por minuto (o pessoal é frenético :-o ).

Escudero:

Será q vale a pena eu começar a usar o JBoss? Uma aplicação rodando no TomCat, é só passar para o JBoss e usar? ou tem MUITA configuração para fazer???

Sim, vale à pena, sem muita configuração, só a do próprio jBoss, Pode continuar desenvolvendo no Tomcat (ou no jetty)…

Eu tenho um cliente que usa Websphere c/ Windows e toda vez que o garbage collector entra em atividade porque o consumo de memória tá alto acaba parando o servidor… Isso quer dizer que não é porque você tem um bom servidor jee que não vai dar m… Claro que isso também é um problema de SO, se eles estivessem no linux com certeza isso não aconteceria por conta do gerenciamento de memória ser mais (e bota mais nisso) eficiente.

Valeu, Só em saber que o guj usa o tomcat, eu já fiquei despreocupado.
E tb que não tem muita configuração para a mudança.

Obrigado,
Claudio Escudero

bebad

se vê,
pior sou eu que emulo Tomcat + mysql + netBeans5.5, navegador, explorer,blocoNotas, num Durom1000 480MB.
:twisted: :twisted: :twisted: :twisted:

Quando a garbage entra em ação, pode até tirar um ronco mano, que o processo É LENTO!!!

A

bebad:
se vê,
pior sou eu que emulo Tomcat + mysql + netBeans5.5, navegador, explorer,blocoNotas, num Durom1000 480MB.
:twisted: :twisted: :twisted: :twisted:

Quando a garbage entra em ação, pode até tirar um ronco mano, que o processo É LENTO!!!

UAihUIAhIUHAiuHIAA…

seufagner

Experimenta… Dá pra sentir, e muito, a diferença em tempo de desenvolvimento…
Em produção eu nunca vi como funciona, mas ele garante eficiencia e flexibilidade…

http://jetty.mortbay.org/

seufagner

Cara, se tua aplicacao é pequena dá uma experimentada no Jetty… Não é popular como o Tomcat, mas é robusto há tempos, visto que o primeiro release é de 1995… A documentação tambem é de qualidade e está tudo no próprio site…

Ah… O JBoss tem hot deploy, não é indispensável o Start-Stop…

seufagner

Não tive problemas com o JBoss* nem com o WebSphere, que é o mais robusto que trabalhei… Levo em consideração que o Weblogic não tem problema, embora a forma como o ambiente é estruturado aqui não torne o hot deploy algo interessante…

*Com Tomcat não rola! Já com o Jetty embebido ficou filé demais… De repente no Tomcat 6, que não testei de modo profícuo, deve estar melhor…

seufagner

http://jettylauncher.sourceforge.net

seufagner

alexandremlima:
Até onde eu saiba, o JBoss usa o Tomcat internamente para gerenciar os serviços web.
No site do JBoss tem assim: "JBoss AS is the #1 Java application server on the market. What makes it even better is the fact that it integrates Hibernate, Apache Tomcat, EJB 3.0, and JBoss Cache into its microkernel foundation so you don’t have to."
Se ele usa o Tomcat como gerenciador de web então o problema deve ser impressão de vocês ao usar os produtos. Ou não… Sei lá… :smiley:

Ele pode usar o Jetty no lugar do Tomcat… Você escolhe… Basta testar para sentir como o Jetty (Que é um MBean) interage bem com o JBoss…

seufagner
afsrj:
seufagner:
Não tive problemas com o JBoss* nem com o WebSphere, que é o mais robusto que trabalhei.. Levo em consideração que o Weblogic não tem problema, embora a forma como o ambiente é estruturado aqui não torne o hot deploy algo interessante... *Com Tomcat não rola! Já com o Jetty embebido ficou filé demais.. De repente no Tomcat 6, que não testei de modo profícuo, deve estar melhor...
Baixei o Jetty. O Tomcat eu aponto para um pasta e vou trabalhando, nao preciso ficar start-stop, mesmo mudando uma class. Como resolvo isso no Jetty? E como fazer algo semelhante a isso no Jetty.
<?xml version="1.0" encoding="iso-8859-1"?>

<Context path="/s" docBase="D:/Alexandre/Java/workspace.IntelliJ/SistemaJ/exploded"
 reloadable="true" crossContext="true" debug="3">
	<Logger className="org.apache.catalina.logger.FileLogger"
	 prefix="localhost_dev_log." suffix=".txt" timestamp="true"
	 verbosity="4" />
</Context>

Existe versoes que facilitam, voce baixa os mesmos ja integrados, assim como a versão que vem com o Tomcat..

http://jetty.mortbay.org/jetty5/download.html

http://jetty.mortbay.org/jetty5/download.html

seufagner

charlesSouza:
pra trocar o tomcat pelo jetty, eu tenho q mudar alguma configuração na minha aplicação?
se ela roda bem no tomcat, com o jetty será a mesma coisa?
eu queria ter a mesma aplicacao nos dois servers.

flw,

Como são dois Containers certificados pela Sun (aprovados) deve rodar sim! Você, supostamente, terá apenas que configurar sua aplicação no Jetty… Isso se voce usar a configuração para iniciá-lo via XML… Pois até um API tem para você iniciar por código! Flexibilidade! Bem…

&lt;Call name="addWebApplication"&gt;
  &lt;Arg&gt;/nomeContexto&lt;/Arg&gt;
  &lt;Arg&gt;c:/diretorio_app&lt;/Arg&gt;
&lt;/Call&gt;

Porém, só para citar um exemplo bem simples e comum entre iniciantes executando testes em casa… Muito nego que coloca jars no lib do Tomcat… Desse modo não funciona obviamente…

Dá uma olhada no site do projeto, você vai sentir o sabor do cara…

http://jetty.mortbay.org/index.html

Criado 18 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 43
Participantes 14