-
1. Re: Cloudbees Container : EJBInjectEnricher issue
aslak Jan 3, 2012 4:04 AM (in response to sewatech)This is a currently limitation of the EJBEnricher. It can't really support 'auto discovery' of JNDI names in a standard way as is.
The 'solution' is to use mappedName/beanName
The general problem is, the injection point is refering to the Interface, while the Bean is mapped in JNDI my it's Impl name, and we don't really know the relation. And as you see here, there is no way of getting the name of the app you're deployed in to build a app specific jndi name.
We have been discussing a workaround for the ejb spec which will basically create a 'fake' EJB of the TestClass and work as a proxy. The FakeTestClass is generated on the fly based on the TestClass, then deployed as a EJB in the container. So when we do the @EJB enrichment of the TestClass, we lookup the FakeTestClass bean and get it's values. Then the individual EJBs should be handled by the Container it self in the same way it normally would. Of course, there is still no standard way of getting to the FakeTestClass beans jndi name, but atleast with EE6 we know the Impl name up front and can use module/FakeTestClass.. I did a 80% impl of this at Devoxx but haven't gotten around to finish it..