Tomcat produtivo no JDeveloper com JSF

Ontem um amigo meu, o Soneca, encontrou uma dificuldade ao configurar o Tomcat no JDeveloper. Simplesmente o Tomcat não é integrado ao JDeveloper 11g igual ao Weblogic. Fiquei curioso e resolvi deixar o JDeveloper produtivo ao se trabalhar com o Tomcat, sem a necessidade de se criar um plugin.

O primeiro passo é configurar como iniciar e parar o tomcat. Para isso, iniciamos o JDeveloper, acessamos o menu Tools, External Tools, Clique em New.

Tools
Tools

Selecione External Program e clique em Next. Configure o Program Executable para o arquivo catalina.sh do seu tomcat. Estou utilizando aqui a versão 7 do Tomcat, mas funciona em qualquer outra versão. Em Arguments, coloque "run", conforme imagem abaixo:

Create External Tool
Create External Tool

Coloque como Caption e Tooltip: "Start Tomcat" e o seguinte ícone:

tomcat-start
tomcat-start

Clique em Next, selecione onde você deseja exibir. Eu selecionei: Tools Menu e Main Toolbar e clique em Finish. Faça o mesmo para o catalina.sh com argumento "stop", Caption e Tooltip "Stop Tomcat" e o seguinte ícone:

tomcat-stop
tomcat-stop

Faça o mesmo para o catalina.sh com argumento "jpda run", Caption e Tooltip "Debug Tomcat" e o seguinte ícone:

tomcat-debug
tomcat-debug

Você deve ficar com uma barra de ferramentas assim:

Toolbar
Toolbar

A primeira parte já está pronta e já é possível iniciar, parar e habilitar o debug do tomcat por esses ícones. A saída do tomcat também irá aparecer dentro do JDeveloper.

Vamos criar um projeto JSF para testar: Vá em File, New, Generic Application, Application Name: "JSFTesteApp", Next. Na próxima tela, em Project Name, coloque "JSFTeste" e selecione JSF em Project Technologies. Clique em Finish. Clique com o botão direito no projeto e selecione New, Web Tier, JSF, JSF Page. Em Filename, coloque teste.jsp. Pressione Ok. Insira algum componente jsf na página criada e salve.

Clique com o botão direito no projeto, selecione Project Properties, Deployment, New. Selecione WAR File, coloque o nome: "jsfteste" e pressione Ok. Selecione File Groups, WEB-INF/lib, Contributors, marque JSF e JSTL. Não selecione JSP Runtime! Pressione Ok duas vezes.

WAR Deployment Profile
WAR Deployment Profile

Inicie o Tomcat através do ícone criado. Clique com o botão direito no projeto e escolha Deploy, jsfteste. Selecione Deploy to Application Server, Clique em Next. Selecione o + na tela de Application Servers para adicionar o Tomcat. Em Connection Type Selecione Tomcat 6.x e dê um nome. Clique em Next e informe o diretório webapps do Tomcat. Clique em Next e Finish duas vezes.

Aguarde alguns segundos e deve aparecer no console do Tomcat o seguinte:

[cc]Aug 30, 2010 4:03:43 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive jsfteste.war
Aug 30, 2010 4:03:43 PM com.sun.faces.config.ConfigureListener contextInitialized
INFO: Initializing Mojarra (1.2_09-20081212-SNAPSHOT) for context '/jsfteste'
Aug 30, 2010 4:03:44 PM com.sun.faces.spi.InjectionProviderFactory createInstance
INFO: JSF1048: PostConstruct/PreDestroy annotations present.  ManagedBeans methods marked with these annotations will have said annotations processed.[/cc]

Acesse a página: http://localhost:8080/jsfteste/faces/teste.jsp

Se abrir a sua página corretamente a configuração foi bem sucedida!

Em um próximo post explico como alterar a execução padrão e habilitar a depuração remota.

Caso alguém tenha interesse em desenvolver um plugin pode contar comigo!

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6