[ 
https://issues.apache.org/jira/browse/DELTASPIKE-782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14214327#comment-14214327
 ] 

Mark Struberg commented on DELTASPIKE-782:
------------------------------------------

[~johndament] txs, will debug into. I know this exact use case did work in the 
past. If we did not find any BMI associated with the current TCCL then we a.) 
look up in JNDI and associate it. b.) go up the ClassLoader parent hierarchy 
until we find something.

The container thus is allowed to even add client classloaders later on. 
What you usually have when integrating OWB or Weld into Tomcat is that you use 
exactly the same WebAppClassLoader for boot and runtime. This is because the 
CDI container most time gets booted via 
ServletContextListener#contextInitialized. And this gets fired when the 
WebAppClassLoader is perfectly set up already.

> BeanManager lookup fails when BeanManager created in parent classloader and 
> in SE mode
> --------------------------------------------------------------------------------------
>
>                 Key: DELTASPIKE-782
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-782
>             Project: DeltaSpike
>          Issue Type: Bug
>          Components: CdiControl, Core
>    Affects Versions: 1.1.0
>            Reporter: Shay matasaro
>            Assignee: John D. Ament
>
> using embeadded tomcat and CdiServletContextListener attempting to use 
> BeanProvider from within a Servlet fails:
> ov 16, 2014 8:19:10 AM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet [YourServlet] in context with path [/] 
> threw exception
> java.lang.IllegalStateException: Unable to find BeanManager. Please ensure 
> that you configured the CDI implementation of your choice properly.
>       at 
> org.apache.deltaspike.core.api.provider.BeanManagerProvider.getBeanManager(BeanManagerProvider.java:201)
>       at 
> org.apache.deltaspike.core.api.provider.BeanProvider.getBeanManager(BeanProvider.java:475)
>       at 
> org.apache.deltaspike.core.api.provider.BeanProvider.getContextualReference(BeanProvider.java:118)
>       at 
> org.apache.deltaspike.core.api.provider.BeanProvider.getContextualReference(BeanProvider.java:101)
> The following code resolves fine in the same location:
> BeanManager beanManager = 
> CdiContainerLoader.getCdiContainer().getBeanManager();
> looks like bmi.loadTimeBm at BeanManagerProvider is not being set properly 
> when using the servlet listener



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to