Maybe give it a try on the snapshot, the issue didn't pop out when starting the container on the 1.6.0-SNAPSHOT Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau
2013/10/29 Kay Wrobel <[email protected]>: > Here is a test project: https://github.com/kwrobel/WebApplication1 > > I uploaded a new commit that uses the @Inject annotation inside > ui.bean.AbstractController > <https://github.com/kwrobel/WebApplication1/blob/master/WebApplication1/src/java/ui/bean/AbstractController.java> > instead of ui.bean.MyTestController > <https://github.com/kwrobel/WebApplication1/blob/master/WebApplication1/src/java/ui/bean/MyTestController.java>. > I just double-checked my statement that it works with GlassFish and, yes, it > works with GlassFish 3.1.2. You can browse the history > <https://github.com/kwrobel/WebApplication1/commit/ba43070d0de4941ab0a4fa84ec0655f11bedd14c> > to see the latest change as explained below. > > > > On 10/29/2013 12:59 AM, Mark Struberg wrote: >> >> I would need a bit more code to understand the problem. >> E.g. how the DiscountCodeFacade does look like. >> Ideally a small sample project. >> >> The message in the log indicates that OWB cannot find a Bean for the >> InjectionPoint. >> >> LieGrue, >> strub >> >> >> >> >> ----- Original Message ----- >>> >>> From: Kay Wrobel <[email protected]> >>> To: [email protected] >>> Cc: >>> Sent: Monday, 28 October 2013, 23:06 >>> Subject: Re: CDI Injecting parameterized types >>> >>> Interesting that this topic has come up. I just tried to roll out a >>> change to my project where I have following situation: >>> Currently, I have an AbstractController and then a Controller for each >>> entity class. On the EJB side of things, I have an AbstractFacade and an >>> entity Facade for each entity, each annotated with @Stateless. Right >>> now, I am injecting an EntityFacade object into an EntityController and >>> then hand off the actual object to a variable that sits inside the >>> AbstractController. I wanted to change that behavior and perform the >>> injection right inside the abstract controller class. To give you a more >>> concrete example, this is how it looks like now: >>> >>> AbstractController.java: >>>> >>>> public abstract class AbstractController<T> { >>>> >>>> private AbstractFacade<T> ejbFacade; >>>> >>>> public AbstractController() { >>>> } >>>> >>>> protected AbstractFacade<T> getFacade() { >>>> return ejbFacade; >>>> } >>>> >>>> protected void setFacade(AbstractFacade<T> ejbFacade) { >>>> this.ejbFacade = ejbFacade; >>>> } >>>> } >>> >>> CustomerController.java: >>>> >>>> @Named(value = "discountCodeController") >>>> @ViewAccessScoped >>>> public class DiscountCodeController extends >>>> AbstractController<DiscountCode> implements Serializable { >>>> >>>> * @Inject** >>>> ** private DiscountCodeFacade ejbFacade;** >>>> * >>>> @PostConstruct >>>> public void init() { >>>> super.setFacade(ejbFacade); >>>> } >>>> >>>> } >>> >>> Now for the change that I had already tested out with Glassfish 3.1.2: >>> >>> AbstractController.java: >>>> >>>> public abstract class AbstractController<T> { >>>> >>>> * @Inject** >>>> ** private AbstractFacade<T> ejbFacade;** >>>> * >>>> public AbstractController() { >>>> } >>>> >>>> public AbstractController(Class<T> itemClass) { >>>> this.itemClass = itemClass; >>>> } >>>> } >>> >>> DiscountController.java: >>>> >>>> @Named(value = "discountCodeController") >>>> @ViewAccessScoped >>>> public class DiscountCodeController extends >>>> AbstractController<DiscountCode> implements Serializable { >>>> >>>> public DiscountCodeController() { >>>> super(DiscountCode.class); >>>> } >>>> >>>> } >>> >>> Notice how I am injecting an AbstractFacade<T> inside >>> AbstractController<T>. This works in Glassfish but fails in >>> Tomee/OpenEJB. >>> >>> Attached is the the deployment log of TomEE: http://pastebin.com/iZHZqy5d >>> >>> Any input from you guys? >>> >>> >>> >>> On 10/28/2013 04:29 PM, Romain Manni-Bucau wrote: >>>> >>>> I needed it for other reasons. Globally while not using producers it >>>> should >>>> work. >>>> Le 28 oct. 2013 22:21, "Chris Owens" >>> >>> <[email protected]> a >>>> >>>> écrit : >>>> >>>>> Thank you, that code is very helpful. I was hoping to be able to do >>>>> it >>>>> without the use of an additional qualifier. >>>>> >>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> >>> >>> http://openejb.979440.n4.nabble.com/CDI-Injecting-parameterized-types-tp4665761p4665766.html >>>>> >>>>> Sent from the OpenEJB User mailing list archive at Nabble.com. >>>>> >
