Classloading jsf2 no jetty embedded

5 respostas
R

Gostaria de alguma ajuda para o jetty embedded conseguir ler meus managed beans do jsf 2.1, pelo que vejo ele não consegue ver as classes que eu gerei.

5 Respostas

B

Olá rapiner,

Acho que posso te ajudar, como você está subindo o jetty?

R

assim, eu criei um projeto java separado e outro projeto web .
Eu queria usar o jetty embedded nele separado pois eu keria desenvolver com o jetty e depois disponibilizar no jboss.

Meu projeto não é do tipo do maven, usei o template do eclipse mesmo e fui inserindo os jars.
Pelo que eu pesquisei o jetty tem um problema para ler os jars ou as classes de um projeto jsf2 quando está embedded, pois o jsf2 procura os .class do projeto no meta-inf. Pelo que vi ele não consegue ler meus managed beans. Estou usando annotations @ManagedBean e @SessionScoped. Estou usando o jetty 7.6.1

Segue abaixo o código pra inicializar o servidor embedded do projeto jettyServer

public class Start {

	public static void main(String[] args) {
		Server server = new Server();
		String[] configFiles = {"etc/jetty.xml"};
		try {
			for(String configFile : configFiles){
				XmlConfiguration configuration = new XmlConfiguration(new File(configFile).toURI().toURL());
				configuration.configure(server);
			}
			
			WebAppContext appContext = new WebAppContext();
			appContext.setContextPath("/jsf2Jetty");
			File rd = new File("./");
			File warPath = new File(rd,"../jsf2Jetty/WebContent");
			appContext.getResourcePaths("/WEB-INF/classes/");
			appContext.setWar(warPath.getAbsolutePath());
			HandlerList handlers = new HandlerList();
			handlers.setHandlers(new Handler[]{ appContext, new DefaultHandler()});
			server.setHandler(handlers);
			server.start();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (SAXException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}

}

aqui o web.xml do projeto web jsf2Jetty

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <context-param>
	 	 <param-name>primefaces.THEME</param-name>
	 	 <param-value>dot-luv</param-value>
	</context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>
R

Ainda não consegui resolver o problema, provavelmente o jetty embedded não consiga ler as classes da aplicação ou é bug, minha aplicação ainda nao consegue enxergar o manageds beans sempre dando o erro de property null dos manageds.

O que realmente eu queria fazer era desenvolver em jsf2 uma aplicação e empacotar em um jar como executavel para rodar como uma aplicação “desktop” simples. Provavelmente vou ter de usar swing msm.

vanderlanio

rapiner:
Ainda não consegui resolver o problema, provavelmente o jetty embedded não consiga ler as classes da aplicação ou é bug, minha aplicação ainda nao consegue enxergar o manageds beans sempre dando o erro de property null dos manageds.

O que realmente eu queria fazer era desenvolver em jsf2 uma aplicação e empacotar em um jar como executavel para rodar como uma aplicação “desktop” simples. Provavelmente vou ter de usar swing msm.

Amigo passei pelos mesmos problemas , mas resolvi segue o meu post lá vc ira encontra solução para estes problemas : http://www.guj.com.br/12271-jetty-embedded-com-cdi

R

Pow, já tinha até desistido da solução hehehe. Na época fiz com swing mesmo e jnlp mas como todo conhecimento é bom e vou tirar o meu projeto antigo do baú e testar essa solução se conseguir fazer funcionar te aviso aew.

Muito obrigado por se dispor a solucionar este problema.

Criado 3 de março de 2012
Ultima resposta 7 de jan. de 2014
Respostas 5
Participantes 3