Integração entre Jetty 8 e jboss seam faces 3

Pessoal, tenho um projeto com jetty 8, no netbeans, já está integrado com jboss weld 1.1.6.final. No entanto, o esquema de MBs com escopo ViewScoped (diretamente do JSF 2.0) não funcionam corretamente, sendo necessário utilizar o seam faces para prover este tipo de escopo corretamente.

Tenho um projeto no jboss 6 que roda perfeitamente, porem no jetty não funciona, printando as seguintes exceções:

01/05/2012 23:55:39 org.jboss.weld.bootstrap.BeanDeployer loadWeldClass
INFO: catching
org.jboss.weld.resources.spi.ResourceLoadingException: Error loading class org.jboss.seam.faces.component.ValueExpressionAnalyzer
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:167)
	at org.jboss.weld.bootstrap.BeanDeployer.loadWeldClass(BeanDeployer.java:108)
	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:79)
	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:123)
	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184)
	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349)
	at org.jboss.weld.environment.servlet.Listener.contextInitialized(Listener.java:182)
	at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
	at org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
	at org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:454)
	at org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:396)
	at org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
	at org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: java.lang.NoClassDefFoundError: javax/el/ValueReference
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
	at java.lang.Class.getDeclaredMethods(Class.java:1791)
	at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:175)
	at org.jboss.weld.util.reflection.SecureReflections$8.work(SecureReflections.java:172)
	at org.jboss.weld.util.reflection.SecureReflectionAccess.run(SecureReflectionAccess.java:52)
	at org.jboss.weld.util.reflection.SecureReflectionAccess.runAndWrap(SecureReflectionAccess.java:63)
	at org.jboss.weld.util.reflection.SecureReflections.getDeclaredMethods(SecureReflections.java:172)
	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:234)
	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:119)
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:59)
	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:50)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingValueReference.compute(ComputingConcurrentHashMap.java:355)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.compute(ComputingConcurrentHashMap.java:184)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingSegment.getOrCompute(ComputingConcurrentHashMap.java:153)
	at com.google.common.collect.ComputingConcurrentHashMap.getOrCompute(ComputingConcurrentHashMap.java:69)
	at com.google.common.collect.ComputingConcurrentHashMap$ComputingMapAdapter.get(ComputingConcurrentHashMap.java:393)
	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:163)
	... 47 more
Caused by: java.lang.ClassNotFoundException: javax.el.ValueReference
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:392)
	at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 65 mor

Alguem tem um projeto rodando com JSF 2.0 + jetty + weld + seam faces 3? Pode ser algum outro modulo do seam, como seam security 3.

Se tiver por favor, me de alguma dica para deixar o projeto rodando normalmente…

PS: Estou usando maven com plugin para jetty.

Olha passei por algo semelhante…
Provavelmente o Weld do jetty esta desatualizado…

O que eu fiz foi alterar o weld, so que no glassfish… procure por weld-osgi-bundle;

O weld antigo faz referencias a API do seam faces 3.0.0;

Acho que é isto mesmo… as versoes de correcoes do seam 3.1.0 mudaram os packages (principalmente o seam faces e o solder que teve integracao) … tente olhar se o endereco onde ‘ResourceLoadingException’ estoura a excecao existe de fato.

Qlquer coisa… é nois rs.

Olá, obrigado pela resposta.

Veja bem, eu tentei atualizar o weld modificando no pom da versão 1.0 para versão 1.1.6.Final, isso já não seria suficiente?

Uma dúvida, por acaso voce conseguiu utilizar o escopo ViewScoped usando jsf 2 puro? Minha aplicação utiliza muito ajax, é fortemente baseada em ajax, por isso o escopo de view seria ideal, é somente por isso que preciso do seam faces 3.1.0.

Bom, vou tentar pesquisar sobre o weld osgi como voce sugeriu, ontem em minhas pesquisas foi um dos items que encontrei, mas como era focado no glassfish acabei deixando passar.

Obrigado.

Pois eh… com o servidor jboss… tem como voce considerar as libs do WAR e nao do servidor… mas como jboss é bem recente…(creio que esteja usando o jboss AS 7)
voce nao teria problemas com libs do weld.

No jetty voce tera que saber se ele esta considerando as libs do Weld do proprio servidor ou sua aplicacao…
Nao sei como funciona em jetty por isso é bom considerar esta alternativa…

Mas como teste altere manualmente mesmo…

Consegui usar View scoped de boa…

So que no caso uso glassfish…

Sugestao: nao apele pro tomcat 7, vai passar raiva rsrs…