Sofrimento com Seam Faces 3.0 + JSF 2.0 + TomCat 7

4 respostas
ThiagoInGuj

Fala ae galera, alguém aí já conseguiu rodar um projeto utilizando Seam Faces 3.0 + JSF 2.0 + TomCat 7 ???

Tá difícil!! Segue abaixo meus arquivos de configuração e mais abaixo o erro do tomcat:

Web.xml:

<?xml version=“1.0” encoding=“UTF-8”?>

<web-app xmlnssi=“<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a> xmlns=“<a href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a> xmlns:web=“<a href="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd</a> xsi:schemaLocation=“<a href="http://java.sun.com/xml/ns/javaee">http://java.sun.com/xml/ns/javaee</a> <a href="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd</a> version=“3.0”>

<display-name>JSF-SEAM-FACES</display-name>

<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>*.xhtml</url-pattern>

</servlet-mapping>

<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>

<listener>

<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>

</listener>

<session-config>
<session-timeout>10</session-timeout>
</session-config>

<resource-env-ref>
<description>Object factory para o CDI Bean Manager</description>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>

</web-app>


arquivo context.xml

<?xml version=“1.0” encoding=“UTF-8”?>
<Context>
<Resource name=“BeanManager” auth=“Container” type=“javax.enterprise.inject.spi.BeanManager”
factory=“org.jboss.weld.resources.ManagerObjectFactory” />
</Context>


o faces-config não acrescentei nada além do default

<faces-config
xmlns=“http://java.sun.com/xml/ns/javaee
xmlnssi=“http://www.w3.org/2001/XMLSchema-instance
xsi:schemaLocation=“http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd
version=“2.0”>

</faces-config>

o arquivo dentro da pasta META-INF/services com o nome org.jboss.weld.environment.Container e dentro dele o conteúdo org.jboss.weld.environment.tomcat7.Tomcat7Container

  • fiz isso pois vi em vários posts que o tomcat 7 tem um bug que faz com que o weld reconheça o tomcat7 como tomcat 6 …

meu pom.xml

<repositories>

<repository>

<id>jboss-public-repository-group</id>

<name>JBoss Public Repository Group</name>

<url><a href="http://repository.jboss.org/nexus/content/groups/public/">http://repository.jboss.org/nexus/content/groups/public/</a></url>

<layout>default</layout>

<releases>

<enabled>true</enabled>

<updatePolicy>never</updatePolicy>

</releases>

<snapshots>

<enabled>true</enabled>

<updatePolicy>never</updatePolicy>

</snapshots>

</repository>

</repositories>

<dependencies>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-api</artifactId>
<version>1.0</version>
</dependency>

<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>1.1.2.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.seam.faces</groupId>
<artifactId>seam-faces</artifactId>
<version>3.0.2.Final</version>
</dependency>
<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.0.2-FCS</version>
</dependency>

<dependency>
<groupId>javax.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.0.2-FCS</version>
</dependency>
</dependencies>
<build>

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>

</plugins>


e o erro do tomcat

27/10/2011 16:19:22 com.sun.faces.config.ConfigureListener contextInitialized

INFO: Inicializando Mojarra 2.1.3 (FCS 2011090 para o contexto /weld-tutorial

27/10/2011 16:19:23 com.sun.faces.spi.InjectionProviderFactory createInstance

INFO: JSF1048: Anotações PostConstruct/PreDestroy presentes. Os métodos ManagedBeans marcados com essas anotações informarão as anotações processadas.

27/10/2011 16:19:23 com.sun.faces.config.ConfigureListener contextInitialized

GRAVE: Critical error during deployment:

com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Failed to locate BeanManager using any of these providers: org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11), org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)

at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:375)

at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: org.jboss.seam.solder.beanManager.BeanManagerUnavailableException: Failed to locate BeanManager using any of these providers: org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11), org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)

at org.jboss.seam.solder.beanManager.BeanManagerLocator.getBeanManager(BeanManagerLocator.java:91)

at org.jboss.seam.faces.environment.SeamApplicationFactory.getApplication(SeamApplicationFactory.java:47)

at com.sun.faces.application.InjectionApplicationFactory.getApplication(InjectionApplicationFactory.java:91)

at com.sun.faces.config.processor.AbstractConfigProcessor.getApplication(AbstractConfigProcessor.java:130)

at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:255)

at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)

at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)

at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)

at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:222)

at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)

 9 more

27/10/2011 16:19:23 org.apache.catalina.core.StandardContext listenerStart

GRAVE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener

java.lang.RuntimeException: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Failed to locate BeanManager using any of these providers: org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11), org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)

at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)

at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! Failed to locate BeanManager using any of these providers: org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11), org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)

at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:375)

at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:225)

 8 more

Caused by: org.jboss.seam.solder.beanManager.BeanManagerUnavailableException: Failed to locate BeanManager using any of these providers: org.jboss.seam.solder.beanManager.DefaultJndiBeanManagerProvider(11), org.jboss.seam.solder.beanManager.ServletContainerJndiBeanManagerProvider(10)

at org.jboss.seam.solder.beanManager.BeanManagerLocator.getBeanManager(BeanManagerLocator.java:91)

at org.jboss.seam.faces.environment.SeamApplicationFactory.getApplication(SeamApplicationFactory.java:47)

at com.sun.faces.application.InjectionApplicationFactory.getApplication(InjectionApplicationFactory.java:91)

at com.sun.faces.config.processor.AbstractConfigProcessor.getApplication(AbstractConfigProcessor.java:130)

at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:255)

at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)

at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)

at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)

at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:222)

at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:360)

 9 more

27/10/2011 16:19:23 org.apache.catalina.core.StandardContext startInternal

GRAVE: Error listenerStart

27/10/2011 16:19:23 org.apache.catalina.core.StandardContext startInternal

GRAVE: Context [/weld-tutorial] startup failed due to previous errors

27/10/2011 16:19:23 com.sun.faces.config.ConfigureListener contextDestroyed

GRAVE: Unexpected exception when attempting to tear down the Mojarra runtime

java.lang.IllegalStateException: O aplicativo não foi iniciado corretamente na inicialização. Não foi possível encontrar Fábrica: javax.faces.application.ApplicationFactory

at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:967)

at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:316)

at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:131)

at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:32

at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4763)

at org.apache.catalina.core.StandardContext$4.run(StandardContext.java:5473)

at java.lang.Thread.run(Unknown Source)

27/10/2011 16:19:23 org.apache.coyote.AbstractProtocol start

É isso ae galera. Se alguem já conseguiu rodar isso aí me dá o caminho das pedras por favor!!!

Abs!!!

4 Respostas

A

cara,

vc realmente precisa do Jboss Seam? pq vc pode usar o CDI do JEE 6.

t+

rogelgarcia

Vê se você consegue fazer um projeto com esse framework funcionar…

Depois faça o comparativo, só pra abrir sua mente :wink:

http://www.nextframework.org/

Videos em: http://www.nextframework.org/site/tutoriais

(Os videos estao um pouco desatualizados, inclusive o nome do framework era diferente na época. Mas vale a pena dar uma olhada. Ainda continua a mesma coisa, só mudou o nome do pacote)

ThiagoInGuj

alissonvla:
cara,

vc realmente precisa do Jboss Seam? pq vc pode usar o CDI do JEE 6.

t+

Então, eu não preciso obrigatoriamente do Seam, mas eu gostei de algumas funcionalidades do módulo Seam Faces como por exemplo o
escopo de conversação e a possibilidade de recuperar um componente da pagina xhtml usando EL no managed bean. Pelo pouco que eu li,
recuperar um componente no managedBean não é possível se o seu managedBean for diferente do escopo de request…

Enfim, eu só queria testar o framework, mas já tentei de tudo e não consegui. Vou deixar pra lá mesmo… ou então vou ter que usar o servidor
da Jboss pra testar isso.

Abs

ThiagoInGuj

rogelgarcia:
Vê se você consegue fazer um projeto com esse framework funcionar…

Depois faça o comparativo, só pra abrir sua mente :wink:

http://www.nextframework.org/

Videos em: http://www.nextframework.org/site/tutoriais

(Os videos estao um pouco desatualizados, inclusive o nome do framework era diferente na época. Mas vale a pena dar uma olhada. Ainda continua a mesma coisa, só mudou o nome do pacote)

Vou dar uma olhada, obrigado!

Criado 28 de outubro de 2011
Ultima resposta 29 de out. de 2011
Respostas 4
Participantes 3