Pular para o conteúdo
10/10/2011 / viniciusknob

Jetty: Welcome File List não é prioridade

        Sempre utilizei o Tomcat. Lendo por ai vi algumas vantagens que o Jetty possui. Gostei do fato de você poder alterar sua aplicação e não precisar dar um restart no server para ele atualizar o war e assim utilizar o que foi atualizado. Jetty faz isso observando as mudanças e eu posso escolher o tempo de intervalo entre essas observações, mas não é esse o ponto aqui, é apenas um diferencial que acho interessante destacar. Vamos lá então!

Pré-requisitos…

JDK – Que é composto pelo JRE, que por sua vez é composto pela JVM, isso será necessário já que estamos lidando com um Servidor Web para Java.
Jetty(Binário) – Para esse exemplo estou usando a versão 7.5.x.
Jetty WTP Adaptor – Um plugin para Eclipse que vai melhorar a interação com o Jetty.
Eclipse IDE – Para esse exemplo estou usando o Eclipse Indigo.

Objetivo

        Minha intenção com esse post é descrever os passos que fiz para usar o Jetty em uma aplicação e também descrever a solução que usei para a não priorização da welcome-file-list no web.xml pelo Jetty.

Processo de Instalação

Baixe e descompacte o binário do Jetty em um local “decente”. Eu criei uma pasta no C: com o nome de “jetty”, em minúsculo mesmo, e descompactei ali dentro.
No Eclipse, instale o plugin WTP Adaptor utilizando o endereço “http://download.eclipse.org/jetty/updates/jetty-wtp”.
Crie um novo Server Jetty e referencie aquele local onde você descompactou o binário do Jetty.
De um start no Server e vá até o navegador e digite http://localhost:8080, se aparecer a página do Jetty é sinal que o negócio bufow.

Welcome File List não é prioridade

        Bom, falar sobre isso é um pouco complicado pois não tenho muito conhecimento. O pouco que entendi é que o Jetty faz uma chamada a um servlet default para impedir que na ausência de um arquivo listado na welcome-list-file retorne um erro 404. Sendo assim ele usa como primeira chamada o “/” efetuando uma requisição, o servlet por sua vez deve fazer um redirect para o que seria a página inicial default, no meu caso o index.jsp.
Procurei e não encontrei onde eu poderia alterar para que o Jetty não fizesse mais isso, mas não encontrei. O que achei foram classes criadas especialmente para iniciar o Jetty setando a página inicial entre outras coisas, mas mais uma vez não é isso que eu quero. Quero continuar na mesma linha do Tomcat.
A solução depois de mais de 18h de pesquisa e tentativas foi aderir a idéia. Acontece que estou usando Struts 2 e sendo assim tenho que criar uma Action que me redireciona para a primeira página. O mais interessante disso é que se depois eu preferir o Jetty posso colocar nessa Action o getInstance para a Factory de EntityManager, mas isso já é assunto para outro post.

Action criada:

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

public class WelcomeAction {
        @Action(value = "", results = {
            @Result(name = "welcome", location = "/index.jsp")
        }
    )
    public String execute() {
        return "welcome";
    }
}

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.