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";
}
}
