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 >>> >>> >>> >> > > >
