Whats new? | Login | Parceiros
Cadastre-se | Atendimento | RSS
+ Java:
artigos   |   vídeos   |    cursos   |    mais

Introdução ao Jetty

Veja neste artigo como utilizar o Jetty, e configurar um plugin no Eclipse para auxiliar no desenvolvimento de aplicações web.

Ricardo Rodrigues Lecheta
Ricardo Rodrigues Lecheta (ricardolecheta@terra.com.br), é autor do livro “Google Android” - Aprenda a criar aplicações para dispositivos móveis utilizando o Android SDK e possui as certificações SCJP, SCWCD, SCBCD, SCMAD, SCEA.


Ver space do autor


Estatísticas:
Visualizações:
19116
Favoritado:
 6 vez(es)
Conteúdo:

Serviços:



Introdução ao Jetty

 

O Jetty é um servidor HTTP e Servlet Container 100% escrito em Java. É o grande concorrente do Tomcat e ficou famoso por ser utilizado como o servlet container do JBoss. Neste artigo será mostrado como utilizar o Jetty, e configurar um plugin no Eclipse para auxiliar no desenvolvimento de aplicações web.

 

A grande vantagem do Jetty com relação ao Tomcat é a sua fácil configuração, e junto com o Eclipse, é possível desenvolver aplicações de forma mais produtiva, alterando o código fonte das classes Java, sem ser necessário reiniciar a aplicação.

Fazendo o download
Faça o download:

Ø      Jetty 4.2.22: http://prdownloads.sourceforge.net/jetty/jetty-4.2.22.tar.gz?download

 

Para instalar o Jetty, basta descompactar o arquivo.


Iniciando o Jetty

Para iniciar o Jetty é muito simples. Basta executar o jar “start.jar” e em poucos segundos o servidor estará no ar. A porta default é 8080.

 

java -jar start.jar

 

Para alterar a porta, basta passar o parâmetro de sistema ${jetty.port}:

 

java -jar -Djetty.port=80 start.jar

 

A pasta /${jetty.home}/webapps é onde ficam as aplicações (default). Caso você possua um arquivo *.war, basta copiá-lo para esta pasta para fazer o deploy.

Compilação dos JSP’s
Quando o Jetty compilar os jsp´s, os arquivos serão salvos em uma pasta temporária, especificada pelo parâmetro de sistema ${java.io.tmpdir}. Porém por padrão esta pasta é excluída toda vez que o Jetty é iniciado. Desta forma, toda vez que a aplicação for reiniciada, os jsp´s serão compilados novamente, afetando a performance do sistema ou do seu ambiente de testes.

 

Sendo assim, é possível configurar o Jetty para compilar os jsp´s em outro diretório, onde estes não sejam excluídos ao reiniciar a aplicação. Para isso, basta seguir uma das alternativas abaixo:

 

  1. Criar a pasta ${jetty.home}/work no diretório do Jetty;
  2. Configurar o parâmetro de sistema ${java.io.tmpdir} para outra pasta;
  3. Criar a pasta WEB-INF/work na sua aplicação;

Abaixo, um exemplo de como iniciar o Jetty e fazer com que os jsp´s compilados sejam salvos na pasta “c:/tmp/work”:

 

java -Djetty.port=80 -Djava.io.tmpdir=c:/tmp/work -jar start.jar

 

Iniciando o Jetty pela API

Com a API do Jetty, é possível iniciar um servidor HTTP com poucas linhas de código Java. Ao executar o código abaixo, um servidor HTTP na porta 80 será iniciado em segundos, sendo possível acessar a página (index.jsp) no seguinte endereço:

 

http://localhost/portal/

 

Server server = new Server();

SocketListener listener = new SocketListener();

listener.setPort(80);

server.addListener(listener);

server.addWebApplication("/portal", "c:/temp/portal/");

server.start();

 

Para testar o exemplo, crie uma pasta “c:/temp/portal/” e coloque um arquivo “index.jsp” na raiz.

 

Para compilar e rodar o código, os seguintes jar´s precisam estar no classpath:

 

Ø      ${jetty_home}/lib/org.mortbay.jetty.jar

Ø      ${jetty_home}/lib/javax.servlet.jar

Ø      ${jetty_home}/ext/jasper-compiler.jar

Ø      ${jetty_home}/ext/jasper-runtime.jar

Ø      ${jetty_home}/ext/ant.jar

 

Iniciando o Jetty com um arquivo XML

Continuando com a flexibilidade do Jetty, ainda é possível iniciá-lo através de um arquivo de configuração em XML. Esta é a prática mais abordada, devido a sua fácil utilização.

 

Crie um arquivo portal.xml na pasta onde o Jetty está instalado e execute o comando abaixo:

 

java -jar start.jar  portal.xml

 

Arquivo portal.xml:

 

cod1artjetty.JPG
 

Agora você pode novamente acessar a aplicação:

 

http://localhost/portal/

 

Note que o arquivo de configuração em XML é um espelho da API do Jetty. O exemplo que foi utilizado para iniciar o Jetty pela API ou XML é o mesmo. No arquivo XML, foi declarado a classe “Server”, e os métodos “addListener” e “addWebApplication” foram chamados, de forma semelhante ao programa Java mostrado anteriormente.

 

Utilizando o Jetty com o Eclipse
Para facilitar ainda mais a utilização do Jetty, existe um plugin para o Eclipse chamado Jetty Launcher (Figura 01).

 

è     http://jettylauncher.sourceforge.net/

 

O plugin pode ser instalado pelo Update Manager. Isto pode ser feito pelo menu Help -> Software Updates -> Find and Install. Basta adicionar um novo site remoto para a URL abaixo, instalar o plugin e reiniciar o Eclipse:

 

è     http://jettylauncher.sourceforge.net/updates

 

Com o Jetty Launcher é possível rodar o Jetty de uma forma rápida e simples, e ainda utilizar o debug do Eclipse. Para gerenciar o classpath do Jetty, basta adicionar os jar’s necessários ao classpath do Projeto (“build path”), e todos os jar’s utilizados serão automaticamente incluídos no classpath, mesmo aqueles que não estão na pasta WEB-INF/lib.

 

Os familiares com o Tomcat poderão perceber uma ligeira diferença de performance com relação ao tempo que o Jetty leva para iniciar a aplicação. Mas com certeza a principal vantagem é quando o Jetty é iniciado em modo Debug, sendo possível alterar o código fonte das classes e salvá-las pelo Eclipse, de forma que as alterações serão refletidas automaticamente quando um “refresh” for feito no browser.

 

Utilizando o Jetty Launcher

É possível iniciar o Jetty para qualquer projeto Java dentro do Eclipse. Para isso, basta que o projeto tenha a seguinte estrutura de diretórios, comum a todas as aplicações web:

 

Ø       Jetty (projeto)

à src (source folder)

Þ      *.java

    à web (Este diretório será utilizado na hora de rodar o Jetty)

Þ      WEB-INF

·         classes (as classes compiladas vão aqui)

·         lib (jar’s necessários)

    à index.jsp

 

Para iniciar o Jetty, entre no menu Run -> Jetty Web e adicione uma nova configuração:

 

è     Informe o projeto Java criado;

è     Selecione a pasta onde o Jetty está instalado;

è     Selecione a pasta “web” criada no projeto. Esta página contém os jsp´s e a pasta WEB-INF/classes.

è     Configure o nome do contexto de sua aplicação, por exemplo: “/portal”

è     Configure a Porta, por exemplo: 80

 

Outra opção é utilizar um arquivo XML para iniciar o Jetty. Para isto selecione a opção “Use a Jetty XML configuration file”, e selecione o arquivo criado anteriormente. Esta abordagem pode ser útil quando mais de um contexto precisar ser iniciado ao mesmo tempo, uma vez que no arquivo XML pode ser adicionada várias aplicações web, conforme visualizado abaixo:

 

cod2artjetty.JPG
 

artjettyimg1.JPG

Figura 01. Imagem do Jetty
 

Ao clicar em “Run ou Debug” o Jetty será iniciado e é possível acessar a aplicação através da seguinte url:

 

http://localhost/portal/

 

Para fazer o debug dos Servlets, sempre utilize o menu “Debug” para iniciar o Jetty. Outra vantagem de iniciar em modo debug, é que as alterações feitas no corpo dos métodos poderão ser visualizadas sem a necessidade de reiniciar o Jetty, basta fazer um refresh no browser. Isto pode ser útil para aplicações que levam muito tempo para iniciar ou se simplesmente você não pode perder a sessão do usuário.


Conclusão
Este tutorial apresentou o Jetty, um consagrado servlet container que vem sendo utilizado de forma eficiente em muitos projetos, como por exemplo: JBoss e Geronimo.

 

Para saber mais sobre o Jetty visite o site oficial:

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





Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar ;-)



 
 

[Este post ainda não foi associado a uma sequência]


[Fechar]
Este post está disponível para assinantes da Java Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
DevMedia Group   www.devmedia.com.br   |   www.javafree.org   |   www.mrbool.com
2010 - Todos os Direitos Reservados a DevMedia Group - (21) 3382-5038