Como fazer para executar uma aplicação jsf 2 + prime faces no jetty 6 ou 7 embedded já segui vários tutoriais mas ainda n ão consegui fazer minha aplicação funcionar.
Um tempo atrás fiz uma pergunta no fórum para resolver o problema de classloading do jetty embedded mas mesmo vendo um tutorial e fazendo o que ele fez não funcionou.
segue o link para o tutorial [url]http://musingsofaprogrammingaddict.blogspot.com/2009/12/running-jsf-2-on-embedded-jetty.html[/url]
usando o jetty 6.1.26 eu máximo que consegui foi startar o servidor e ele exibe as classes e os .java do projeto mas não executou meu index.xhtml.
segue aqui a classe para startar o jetty.
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.DefaultHandler;
import org.mortbay.jetty.handler.HandlerList;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
import org.mortbay.resource.ResourceCollection;
public class Start {
public static void main(String[] args) throws Exception {
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8888);
connector.setHost("127.0.0.1");
server.addConnector(connector);
WebAppContext webapp = new AliasEnhancedWebAppContext();
//webapp.getResourcePaths("./WEB-INF/classes");
webapp.setBaseResource(
new ResourceCollection(
new String[] {"./src/", "./WebContent/WEB-INF/classes"}));
webapp.setResourceAlias("/WEB-INF/classes/", "/classes/");
webapp.setContextPath("/livraria");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]{ webapp, new DefaultHandler()});
server.setHandler(handlers);
server.setStopAtShutdown(true);
server.start();
server.join();
}
}
E minha classe controller
import java.awt.event.ActionEvent;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import modelo.Livro;
import dao.LivroDao;
import dao.impl.LivroDaoImpl;
@ManagedBean
@SessionScoped
public class LivroController {
private Livro livro;
private DataModel listaLivros;
public DataModel getListarLivros() {
List<Livro> lista = new LivroDaoImpl().list();
listaLivros = new ListDataModel(lista);
return listaLivros;
}
public Livro getLivro() {
return livro;
}
public void setLivro(Livro livro) {
this.livro = livro;
}
public void prepararAdicionarLivro(ActionEvent actionEvent) {
livro = new Livro();
}
public void prepararAlterarLivro(ActionEvent actionEvent) {
livro = (Livro) (listaLivros.getRowData());
}
public String excluirLivro() {
Livro livroTemp = (Livro) (listaLivros.getRowData());
LivroDao dao = new LivroDaoImpl();
dao.remove(livroTemp);
return "index";
}
public void adicionarLivro(ActionEvent actionEvent) {
LivroDao dao = new LivroDaoImpl();
dao.save(livro);
}
public void alterarLivro(ActionEvent actionEvent) {
LivroDao dao = new LivroDaoImpl();
dao.update(livro);
}