Vamos fazer um "hello world" de um projeto Web dentro do Eclipse, utilizando o Tomcat 7. Esse tutorial é pra quem está começando com desenvolvimento Web com o Eclipse.
O primeiro passo é fazer o download do Tomcat 7 e instalá-lo, conforme descrito em: http://www.thiagovespa.com.br/blog/2010/08/30/instalacao-do-tomcat-7-servlet-3-0-jsp-2-2-e-el-2-2/
Após esse procedimento, é necessário configurá-lo no Eclipse. Para isso vá na View Servers. Caso você não esteja visualizando essa View, clique em Window, Show View, Other.... Procure por Servers e clique OK. Clique com o botão direito na "parte interna branca" da View Servers e selecion New, Server. Escolha Apache, Tomcat v7.0 Server, configure o hostname (se for diferente de localhost) e altere Server name se achar necessário e clique em Next.
Altere o nome se quiser e configure o local de instalação do Tomcat 7. Clique em Finish. Você pode clicar em Next se já quiser fazer deploy de alguma aplicação existente (faremos isso depois).
Deverá aparecer um novo servidor na View Servers. Vá em File, New, Other, Web, Dynamic Web Project. Pressione Next. Dê um nome para o projeto e verifique se está selecionado Apache Tomcat v7.0 e Dynamic web module version 3.0. Clique em Next.
A próxima tela é para configurar onde estarão os arquivos fonte. No caso, eu gosto da estrutura do Eclipse. Clique em Next. Configure o contexto da sua aplicação, a pasta onde ficarão os arquivos de conteúdo web (html, css, jsp, js, imagens...), selecione Generate web.xml deployment descriptor para que ele gere o arquivo web.xml automaticamente. Clique em Finish.
Projeto Criado! Para criar o nosso JSP de "Hello World", clique com o botão direito no projeto, New, JSP File. Coloque o nome de index.jsp, e clique em Next. Selecione um template (eu escolhi New JSP File (xhtml)) e clique em Finish. Altere a página do jeito que você quiser. Eu coloquei de título Olá Mundo ! E dentro do <body></body> coloquei Olá Mundo! Salve. Clique com o botão direito no arquivo index.jsp no Project Navigator. Selecione Run As, Run on Server. Escolha o servidor e clique em Finish.
O Tomcat 7 irá inicializar e abrirá nosso "hello world".
Agora é só você começar a desenvolver suas aplicações web.
[...] This post was mentioned on Twitter by Cantinho do Agile, Thiago G. Vespa. Thiago G. Vespa said: Novo post: Criando um projeto web com Tomcat 7 e Eclipse http://j.mp/dqf4tX [...]
Sou novo area, instalei o tomcat 7, para configurar no eclipse versao 3.6, nao encontro a parte dos servers....
Vá em Window, Show View, Other..., digiter Servers e clique OK.
Olá Thiago, tudo bem!
Iniciei o estudo sobre programação web seu post ajudou muito. Porém, estou com problemas ao iniciar o tomcat pelo eclipse, aparece o seguinte erro no console:
31/12/2011 11:44:56 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\WANdisco\Subversion;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\TortoiseSVN\bin;C:\Users\Luciana\Documents\maven\apache-maven-3.0.3\bin;C:\Users\Luciana\Documents\JBOSS\jboss-as-7.1.0.CR1b\bin
31/12/2011 11:44:57 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
31/12/2011 11:44:57 org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:369)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:553)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:937)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
at org.apache.catalina.startup.Catalina.load(Catalina.java:598)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
31/12/2011 11:44:57 org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
at org.apache.catalina.startup.Catalina.load(Catalina.java:598)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:939)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49)
at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:369)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:553)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:937)
... 13 more
31/12/2011 11:44:57 org.apache.coyote.AbstractProtocol init
Já procurei este erro em alguns post's, mas não consegui solucionar ainda, caso possa dar uma dica desde já agradeço. Até mais!
eu tive este mesmo erro, entrei em todos os tomcat instalado no meu pc e coloquei como manual e dei stop em todos, ai quando entrei no eclipse coloquei ele em outra pasta inicial, ai fiz tudo de novo e achei a pasta do bronwser do tomcat 7 no pc, quando configurei ai deu certo,
Luciana, eu acho que tem algum tomcat startado. por isso que vc nao consegue segui o tutorial.
Thiago, Já fiz os passos para instalação do Tomcat, agora o que não consigo é visualizar essa guia "Servers"... Já fiz o procedimento de ir na guia Window - Show View - Other, mas mesmo digitando "Servers", não localiza e o botão ok fica desabilitado. Não sei se é a versão do Eclipse que não tem esse serviço, a que uso é a Eclipse SKD versão 4.2.1. Se tiver outro jeito de configurar o Tomcat no Eclipse, desde já agradeço!
Obrigada pelo post. Foi de grande ajuda para mim que sou iniciante.
Muito bom seu tutorial. Quando vou tentar criar um novo server e seleciono a versão do tomcat a opção "next" e o "Server name:" fica desabilitada. Você sabe oq pode ser?
Consegue me enviar um screenshot?
vinicius dantas, muda o caminho do arquivo la no eclipse e cria novo serves.
Prezado Thiago,
Segui o seu roteiro sem dificuldade ate a criacao do JSP hello world. Porem qdo o executo com Run as, Run on Server recebo a mensagem:
Several ports (8005, 8080, 8009) required by Tomcat v7.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).
Com essa informacao da para identificar o que nao fiz corretamente?
O Tomcat esta instalado (versao 7.0.32) e executa o http://localhost:8080. Eclipse Juno SR 2.
Obrigado.
Wagner
Baixa o tomcat e execute direto no eclipse. Se mesmo assim der erro, verifique as portas em uso: http://www.thiagovespa.com.br/blog/2011/11/17/portas-em-uso-no-linux/ e mate o processo q está executando na 8005, 8080 e 8009.
Bom dia Thiago, tenho uma dúvida, e não encontrei nada pesquisando. Talvez você possa me ajudar. É possível gerar uma arquivo web.xml no Eclipse Juno de um projeto web dinâmico já existente?
Sim... tlvz vc vá precisar alterar os facets, caso mude a versão do web.xml. O que vc queria em específico?
"Criando um projeto Web com Tomcat 7 e Eclipse"
Cadê o projeto web? Instalar o tomcat é sopinha pra nenem!!!
ares, para de criticar e ler direito o post, esta tudo ai. se liga. o post ajuda muito.