There is a known 'issue' with shared EAR libs [1] plus other smaller problems. 

The main problem is that depending on the BeanManager configuration you might 
get different Beans. 


I'm not sure if you like to know all the gory details, but I fear it's 
currently not working as expected ;)
And no, this is not a Geronimo specific problem but Weld (and all containers 
using it) is also broken in this regard.

I already hat a bunch of talks on the CDI EG and I expect we'll sort this out 
in the CDI-1.1 specification.


LieGrue,
strub



[1] https://issues.jboss.org/browse/CDI-129




>________________________________
> From: Adme Admirolas <[email protected]>
>To: [email protected]; Mark Struberg <[email protected]> 
>Sent: Tuesday, February 7, 2012 3:13 PM
>Subject: Re: Geronimo 3.0 and CDI
> 
>
>And what about EAR shared libs? Is there any potential problems?
>
>
>On 7 February 2012 15:49, Mark Struberg <[email protected]> wrote:
>
>No, not as long as the JAR has a META-INF/beans.xml in it.
>>
>>
>>I'm not yet sure in which configuration Geronimo ships OpenWebBeans. Usually 
>>we 'ignore' most of the BDA restrictions of the CDI-1.0 spec because they are 
>>really broken. They will got reworked/dropped in CDI-1.1 anyway...
>>
>>Depending on this you might be careful because a few things wont work if the 
>>BDA modus is enabled. If it's enabled in Geronimo by default, then I _highly_ 
>>suggest to disable it manually by providing a 
>>META-INF/openwebbeans/openwebbeans.properties where you set 
>>org.apache.webbeans.useBDABeansXMLScanner = false
>>
>>Btw, this BDA 'feature' is the reason for about 50% of all JBossAS, Weld and 
>>Glassfish bug reports in the CDI area ;)
>>
>>
>>LieGrue,
>>strub
>>
>>
>>
>>
>>>________________________________
>>> From: Adme Admirolas <[email protected]>
>>>To: [email protected]; Mark Struberg <[email protected]>
>>>Sent: Tuesday, February 7, 2012 2:33 PM
>>>Subject: Re: Geronimo 3.0 and CDI
>>
>>>
>>>
>>>Thanks for quick response. I found my mistake by myself. I have added 
>>>beans.xml not to web-inf, but to meta-inf folder. After moving that file, 
>>>problem is solved.
>>>
>>>I got one more question. You have asked where "Injectable" class stored. Is 
>>>there going to be some problems, if that class would be in JAR in 
>>>WEB-INF/lib?
>>>
>>>Admirolas
>>>
>>>
>>>On 7 February 2012 14:30, Mark Struberg <[email protected]> wrote:
>>>
>>>Hi!
>>>>
>>>>First a small hint: you don't need to use @Default explicitly because it's 
>>>>assumed if no other Qualifier (than @Named) is set.
>>>>
>>>>Second: you sure have the beans.xml marker files?
>>>>
>>>>
>>>>Where is this class 'Injectable' exactly stored? A JAR in WEB-INF/lib, in 
>>>>WEB-INF/classes or an ear shared lib?
>>>>
>>>>LieGrue,
>>>>strub
>>>>
>>>>>________________________________
>>>>> From: Adme Admirolas <[email protected]>
>>>>>To: [email protected]
>>>>>Sent: Tuesday, February 7, 2012 1:07 PM
>>>>>Subject: Geronimo 3.0 and CDI
>>>>
>>>>>
>>>>>
>>>>>Hello,
>>>>>
>>>>>I'm failing to create simple web app and deploy it to Geronimo. I'm trying 
>>>>>to create simple servlet, and inject POJO using CDI.
>>>>>
>>>>>Here is my Servlet class:
>>>>>
>>>>>
>>>>>@WebServlet("/TestServlet")
>>>>>>public class TestServlet extends HttpServlet {
>>>>>>    private static final long serialVersionUID = 1L;
>>>>>>      
>>>>>>    @Inject
>>>>>>    private InjectableInterface inj;
>>>>>> 
>>>>>>    public TestServlet() {
>>>>>>        super();
>>>>>>    }
>>>>>>}
>>>>>>
>>>>>Here is InjectableInterface.java:
>>>>>
>>>>>
>>>>>public interface InjectableInterface {
>>>>>>
>>>>>>}
>>>>>>
>>>>>Here is implementation of interface:
>>>>>
>>>>>
>>>>>@Default
>>>>>>public class Injectable implements InjectableInterface {
>>>>>>
>>>>>>}
>>>>>>
>>>>>But when I deploy war to geronimo 3, i get this exception:
>>>>>
>>>>>
>>>>>javax.enterprise.inject.UnsatisfiedResolutionException: Api type 
>>>>>[test.InjectableInterface] is not found with the qualifiers
>>>>Qualifiers: [@javax.enterprise.inject.Default()]
>>>>for injection into Field Injection Point, field name :  inj, Bean Owner : 
>>>>[TestServlet, Name:null, WebBeans Type:MANAGED, API Types:[], 
>>>>Qualifiers:[]] 
>>>>org.apache.webbeans.util.InjectionExceptionUtils.throwUnsatisfiedResolutionException(InjectionExceptionUtils.java:92)
>>>> 
>>>>org.apache.webbeans.container.ResolutionUtil.checkResolvedBeans(ResolutionUtil.java:98)
>>>> 
>>>>org.apache.webbeans.container.InjectionResolver.getInjectionPointBean(InjectionResolver.java:265)
>>>> 
>>>>org.apache.webbeans.inject.OWBInjector.getInjectedObjectReference(OWBInjector.java:229)
>>>> org.apache.webbeans.inject.OWBInjector.inject(OWBInjector.java:146) 
>>>>org.apache.webbeans.inject.OWBInjector.inject(OWBInjector.java:94) 
>>>>org.apache.geronimo.j2ee.annotation.Holder.newInstance(Holder.java:185) 
>>>>org.apache.geronimo.tomcat.TomcatInstanceManager.newInstance(TomcatInstanceManager.java:74)
>>>> 
>>>>org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:850)
>>>> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:48)
>>>> 
>>>>org.apache.geronimo.tomcat.valve.ProtectedTargetValve.invoke(ProtectedTargetValve.java:53)
>>>>>What I'm doing wrong? Could anyone help me?
>>>>>
>>>>>Admrolas
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
>
>
>

Reply via email to