What is the default scope of a jpa entity manager in Seam? My experience is 
that it is CONVERSATION. Is that correct?

I often get an error message on the console that the transaction can not be 
started, when I access a page, which contains no component reference in the 
cnversation scope. The reason is somehow the component lookup for entityManager 
in default scope (CONVERSATION) fails, because no conversation has started yet. 
As soon as a conversation has been started in my application, the exception 
disappears.

java.lang.IllegalStateException: Could not start transaction
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:571
  | )
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(Se
  | amPhaseListener.java:307)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseList
  | ener.java:142)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.ja
  | va:116)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.invokePhaseListener(ResourceL
  | ifecycle.java:201)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.processPhaseListeners(Resourc
  | eLifecycle.java:177)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.send(ResourceLifecycle.java:1
  | 47)
  |         at 
org.ajax4jsf.resource.InternetResourceService.load(InternetResourceSe
  | rvice.java:336)
  |         at org.ajax4jsf.cache.LRUMapCache.load(LRUMapCache.java:116)
  |         at org.ajax4jsf.cache.LRUMapCache.get(LRUMapCache.java:87)
  |         at 
org.ajax4jsf.resource.InternetResourceService.serviceResource(Interne
  | tResourceService.java:198)
  |         at 
org.ajax4jsf.resource.InternetResourceService.serviceResource(Interne
  | tResourceService.java:144)
  |         at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:265)
  |         at 
org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
  |         at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter
  | .java:69)
  |         at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  |         at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter
  | .java:69)
  |         at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
  | icationFilterChain.java:235)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
  | ilterChain.java:206)
  |         at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
  | lter.java:96)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
  | icationFilterChain.java:235)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
  | ilterChain.java:206)
  |         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
  | alve.java:230)
  |         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
  | alve.java:175)
  |         at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
  | yAssociationValve.java:179)
  |         at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
  | e.java:84)
  |         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
  | ava:127)
  |         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
  | ava:102)
  |         at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
  | onnectionValve.java:157)
  |         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
  | ve.java:109)
  |         at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
  | a:262)
  |         at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
  | :844)
  |         at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
  | ss(Http11Protocol.java:583)
  |         at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
  | 6)
  |         at java.lang.Thread.run(Thread.java:595)
  | Caused by: 
org.springframework.transaction.CannotCreateTransactionException: Cou
  | ld not open JPA EntityManager for transaction; nested exception is 
java.lang.Ill
  | egalArgumentException: Instance must not be null
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransact
  | ionManager.java:374)
  |         at 
org.springframework.transaction.support.AbstractPlatformTransactionMa
  | nager.getTransaction(AbstractPlatformTransactionManager.java:350)
  |         at 
org.jboss.seam.ioc.spring.SpringTransaction.begin(SpringTransaction.j
  | ava:74)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:566
  | )
  |         ... 35 more
  | Caused by: java.lang.IllegalArgumentException: Instance must not be null
  |         at org.springframework.util.Assert.notNull(Assert.java:112)
  |         at 
org.springframework.util.ClassUtils.getAllInterfaces(ClassUtils.java:
  | 703)
  |         at 
org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactory.createEntit
  | yManager(SeamManagedEntityManagerFactory.java:61)
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.createEntityManager
  | ForTransaction(JpaTransactionManager.java:391)
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransact
  | ionManager.java:315)
  |         ... 38 more
  | 12:02:31,191 ERROR [SeamPhaseListener] swallowing exception
  | java.lang.IllegalStateException: Could not start transaction
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:571
  | )
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(Se
  | amPhaseListener.java:307)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseList
  | ener.java:142)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.ja
  | va:116)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.invokePhaseListener(ResourceL
  | ifecycle.java:201)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.processPhaseListeners(Resourc
  | eLifecycle.java:177)
  |         at 
org.ajax4jsf.resource.ResourceLifecycle.send(ResourceLifecycle.java:1
  | 47)
  |         at 
org.ajax4jsf.resource.InternetResourceService.load(InternetResourceSe
  | rvice.java:336)
  |         at org.ajax4jsf.cache.LRUMapCache.load(LRUMapCache.java:116)
  |         at org.ajax4jsf.cache.LRUMapCache.get(LRUMapCache.java:87)
  |         at 
org.ajax4jsf.resource.InternetResourceService.serviceResource(Interne
  | tResourceService.java:198)
  |         at 
org.ajax4jsf.resource.InternetResourceService.serviceResource(Interne
  | tResourceService.java:144)
  |         at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:265)
  |         at 
org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
  |         at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter
  | .java:69)
  |         at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
  |         at 
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter
  | .java:69)
  |         at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
  | icationFilterChain.java:235)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
  | ilterChain.java:206)
  |         at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
  | lter.java:96)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
  | icationFilterChain.java:235)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
  | ilterChain.java:206)
  |         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
  | alve.java:230)
  |         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
  | alve.java:175)
  |         at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
  | yAssociationValve.java:179)
  |         at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
  | e.java:84)
  |         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
  | ava:127)
  |         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
  | ava:102)
  |         at 
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
  | onnectionValve.java:157)
  |         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
  | ve.java:109)
  |         at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
  | a:262)
  |         at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
  | :844)
  |         at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
  | ss(Http11Protocol.java:583)
  |         at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
  | 6)
  |         at java.lang.Thread.run(Thread.java:595)
  | Caused by: 
org.springframework.transaction.CannotCreateTransactionException: Cou
  | ld not open JPA EntityManager for transaction; nested exception is 
java.lang.Ill
  | egalArgumentException: Instance must not be null
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransact
  | ionManager.java:374)
  |         at 
org.springframework.transaction.support.AbstractPlatformTransactionMa
  | nager.getTransaction(AbstractPlatformTransactionManager.java:350)
  |         at 
org.jboss.seam.ioc.spring.SpringTransaction.begin(SpringTransaction.j
  | ava:74)
  |         at 
org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:566
  | )
  |         ... 35 more
  | Caused by: java.lang.IllegalArgumentException: Instance must not be null
  |         at org.springframework.util.Assert.notNull(Assert.java:112)
  |         at 
org.springframework.util.ClassUtils.getAllInterfaces(ClassUtils.java:
  | 703)
  |         at 
org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactory.createEntit
  | yManager(SeamManagedEntityManagerFactory.java:61)
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.createEntityManager
  | ForTransaction(JpaTransactionManager.java:391)
  |         at 
org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransact
  | ionManager.java:315)
  |         ... 38 more

I am using Seam together with Spring. application-context.xml

        <bean id="entityManagerFactory" 
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  | <!--                <property name="dataSource" ref="dataSource"/>   -->
  |             <property name="persistenceUnitName" value="asap"/>
  |     </bean>
  | 
  |     <bean id="transactionManager" 
class="org.springframework.orm.jpa.JpaTransactionManager">
  |             <!-- Be sure to specify the SeamManagedEntityManagerFactory 
since that will manage the EM that will be
  |                     beginning and ending transactions.-->
  |             <property name="entityManagerFactory" 
ref="seamEntityManagerFactory" />
  |     </bean>
  | 
  |     <tx:annotation-driven proxy-target-class="true" />
  | 
  |     <seam:configure-scopes />
  |     <bean
  |             
class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor">
  |             <!-- Because we have multiple EntityManagerFactories in this 
applicaitonContext identify the
  |                     SeamManagedEntityManagerFactory as the default -->
  |             <property name="defaultPersistenceUnitName" 
value="persistenceContextName" />
  |     </bean>
  | 
  |     <!-- EMF that wraps a Seam Managed EM instance for use in Spring -->
  |     <bean id="seamEntityManagerFactory" 
class="org.jboss.seam.ioc.spring.SeamManagedEntityManagerFactoryBean">
  |             <!-- The Seam managed-persistence-context component name. -->
  |             <property name="persistenceContextName" value="entityManager" />
  |             <!-- Optionally provide a unit name.  If not specified the 
default would be the persistenceContextName -->
  |             <property name="persistenceUnitName" 
value="persistenceContextName" />
  |     </bean>

components.xml

        <core:init debug="true" />
  | 
  |     <core:manager conversation-timeout="120000"
  |             concurrent-request-timeout="500" 
conversation-id-parameter="cid" />
  | 
  |     <persistence:managed-persistence-context name="entityManager"
  |             auto-create="true" 
entity-manager-factory="#{entityManagerFactory}" />
  | 
  | 
  |     <spring:context-loader>
  |             <spring:config-locations>
  |                     <value>classpath:/META-INF/web-context.xml</value>
  |                     
<value>classpath:/META-INF/core-custom-context.xml</value>
  |                     
<value>classpath:/META-INF/application-context.xml</value>
  |             </spring:config-locations>
  |     </spring:context-loader>
  | 
  |     <spring:spring-transaction
  |             platform-transaction-manager="#{transactionManager}" />
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4112218#4112218

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4112218
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to