Servidor embutido

Boa tarde a todos,

Desenvolvi uma aplicação utilizando jsf e hibernate que funciona perfeitamente, porém, houve a necessidade de utilizarmos esta aplicação num servidor embutido, utilizei o Jetty. Após gerar o arquivo jar estou com alguns problema, segue abaixo o código utilizado e o problema apresentado:

import org.mortbay.jetty.Server;
import org.mortbay.jetty.webapp.WebAppContext;

public class Start {

	public static void main(String[] args) throws Exception {
		String jetty_home = System.getProperty("jetty.home", ".");

		Server server = new Server(8089);

		WebAppContext webapp = new WebAppContext();
		webapp.setContextPath("/jahu-online");
		webapp.setWar(jetty_home + "/webapps/jahu-online.war");
		webapp.setExtractWAR(true);
		webapp.setParentLoaderPriority(true);
		server.setHandler(webapp);

		server.start();
		server.join();
	}
}

Aparece o erro Error Starting handlers, warn: e failed org.mortbay.jetty.webapp.WebAppContext e java.lang.NoSuchMethodError: org.mortbay.util.IO.getClosedStream()

Eu pesquisei bastante, mas não consegui solucionar o problema, obrigado a todos.

Eu utilizei a opção para projeto “aberto” (sem utilizar war e funcionou normalmente. Você pode utilizar esta opção?

flws

Legal vou tentar…

Agora desta forma, como deve ficar configurada a linha abaixo (ou se tem alguma outra configuração que não citei no exemplo).


webapp.setWar(jetty_home + "/webapps/jahu-online.war");

Eu tive uma experiência com Jetty Embutido e, inclusive, com processamento de JSP, TagLibs e EL (Expression Language). Descrevi-a no link abaixo e também postei 4 projetos de exemplo.

http://pedroabs.wordpress.com/2013/07/17/embutindo-o-jetty-em-sua-aplicacao-web-java/

Obrigado, vou analisar seu exemplo.

Pedro boa tarde,

Analisando seu projeto observei que você colocou os arquivos jars do jetty e outros que foram necessários no classpath, porém, eu não entendi se você gera um war ou jar da aplicação, e como você faz para executar isto. Nos procedimentos normais como você falou colocaríamos no container e acessaríamos “http:\localhost:8080 …”, mas desta forma não consigo visualizar.

Obrigado

Josué.