Right, the CDI spec doesn't require the RequestScoped context to be set up for 
@Initialized(ApplicationScoped.class)
But it is required for @PostConstruct.
And of course the message to the @Initialized observer will trigger the 
creation and thus the PostConstruct.

This makes weirdly looking code with an empty observer method which is just 
here to get the creation triggered.
And then the actual code is in @PostConstruct which seemingly has nothing to 
do. Ugly as hack. But it works.


LieGrue,
strub




> Am 27.08.2018 um 17:41 schrieb Luís Alves <[email protected]>:
> 
> Hi,
> 
> I had a similar issue but was on @Observes
> @Initialized(ApplicationScoped.class). The trick was to move my logic to a
> @PostConstruct.
> 
> btw my Entity Manager Producer looks like:
> 
> @ApplicationScoped
> public class EntityManagerProducerImpl implements EntityManagerProducer
> {
> 
>    @PersistenceContext(unitName = "unit-name")
>    private EntityManager entityManager;
> 
>    @Override
>    @Produces
>    @Default
>    *@RequestScoped*
>    public EntityManager get()
>    {
>        return entityManager;
>    }
> }
> 
> and my repositories look like:
> 
> @Repository
> @ApplicationScoped
> public abstract class ConfigurationRepository extends
> AbstractEntityRepository<Configuration, Integer>
> {
> 
> Best,
> LA
> 
> On Mon, Aug 27, 2018 at 4:21 PM [email protected] <
> [email protected]> wrote:
> 
>> Hi,
>> My name Mrinal working in Ford Motor Company. We are using deltaspike
>> 1.7.1 jars in our application.
>> In my use case when I am submitting my task using ManagedExecutorService
>> service, it is getting failed.
>> Reason for the failure is repository is not able save the data.  Below is
>> my repository and exception stacktrace:
>> 
>> @Dependent
>> @Repository
>> public abstract class XXXRepository extends FJpaBaseEntityRepository<XXDE,
>> Integer> {
>> 
>> 
>>    /**
>>     * Added hints to always ignore the cache and refresh the data from
>> the database and READ
>>     * ONLY.
>>     *
>>     * @see org.apache.deltaspike.data.api.EntityRepository#findAll()
>>     */
>> 
>>    @Query(hints = {
>>        @QueryHint(name = QueryHints.READ_ONLY, value = HintValues.TRUE),
>>        @QueryHint(name = QueryHints.CACHE_RETRIEVE_MODE, value =
>> "BYPASS"),
>>        @QueryHint(name = QueryHints.REFRESH, value = HintValues.TRUE)})
>>    public abstract List<XXDE> findAllOrderByScanIDDesc();
>> 
>> }
>> [err] org.apache.deltaspike.data.api.QueryInvocationException: Failed
>> calling Repository:
>> [Repository=com.ford.pcfscanner.domain.integration.scan.XXRepository,entity=com.ford.pcfscanner.domain.shared.scan.XXDE,method=saveAndFlush,exception=class
>> org.jboss.weld.context.ContextNotActiveException,message=WELD-001303: No
>> active contexts for scope type javax.enterprise.context.RequestScoped
>> [err] at
>> org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:159)
>> [err] at
>> org.apache.deltaspike.data.impl.handler.QueryHandler.invoke(QueryHandler.java:129)
>> [err] at
>> org.apache.deltaspike.data.impl.handler.QueryHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown
>> Source)
>> [err] at
>> org.apache.deltaspike.proxy.impl.invocation.DelegateManualInvocationHandler.proceedOriginal(DelegateManualInvocationHandler.java:47)
>> [err] at
>> org.apache.deltaspike.proxy.impl.invocation.AbstractManualInvocationHandler.invoke(AbstractManualInvocationHandler.java:59)
>> [err] at
>> org.apache.deltaspike.proxy.impl.invocation.DelegateManualInvocationHandler$Proxy$_$$_WeldClientProxy.invoke(Unknown
>> Source)
>> [err] at
>> org.apache.deltaspike.proxy.impl.invocation.DelegateManualInvocationHandler.staticInvoke(DelegateManualInvocationHandler.java:40)
>> [err] at
>> com.ford.pcfscanner.domain.integration.scan.XXRepository$$DSPartialBeanProxy.saveAndFlush(Unknown
>> Source)
>> [err] at com.ford.pcfscanner.business.scan.AsyncEJB.test(AsyncEJB.java:60)
>> [err] at
>> com.ford.pcfscanner.inbound.scanner.ui.bean.ScanBean.lambda$1(ScanBean.java:180)
>> [err] at
>> com.ford.pcfscanner.inbound.scanner.ui.bean.ScanBean$$Lambda$6.00000000151CDB20.run(Unknown
>> Source)
>> [err] at
>> com.ibm.ws.concurrent.internal.SubmittedTask.run(SubmittedTask.java:276)
>> [err] at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
>> [err] at java.util.concurrent.FutureTask.run(FutureTask.java:277)
>> [err] at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153)
>> [err] at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>> [err] at java.lang.Thread.run(Thread.java:785)
>> [err] Caused by:
>> [err] org.jboss.weld.context.ContextNotActiveException: WELD-001303: No
>> active contexts for scope type javax.enterprise.context.RequestScoped
>> [err] at
>> org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:705)
>> [err] at [internal classes]
>> [err] at
>> org.jboss.weldx.persistence.EntityManager$290174006$Proxy$_$$_WeldClientProxy.getTransaction(Unknown
>> Source)
>> [err] at
>> org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.getTransaction(ResourceLocalTransactionStrategy.java:370)
>> [err] at
>> org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.rollbackAllTransactions(ResourceLocalTransactionStrategy.java:336)
>> [err] at
>> org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy.execute(ResourceLocalTransactionStrategy.java:154)
>> [err] at
>> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeTransactional(TransactionalQueryRunner.java:72)
>> [err] at
>> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner.executeQuery(TransactionalQueryRunner.java:54)
>> [err] at
>> org.apache.deltaspike.data.impl.tx.TransactionalQueryRunner$Proxy$_$$_WeldClientProxy.executeQuery(Unknown
>> Source)
>> [err] at
>> org.apache.deltaspike.data.impl.handler.QueryHandler.process(QueryHandler.java:147)
>> [err] ... 16 more
>> 
>> 

Reply via email to