On Jul 8, 2008, at 8:47 AM, chawax wrote:
And two interfaces, generated everytime too :
- @javax.ejb.Local interface EmployeeServiceLocal extends
EmployeeService
- interface EmployeeService
[...]
I also have a ejb-jar.xml file with EJB defined as following :
<session>
<ejb-name>EmployeeServiceBean</ejb-name>
<local>t4.core.employee.EmployeeServiceLocal</local>
<ejb-class>t4.core.employee.EmployeeServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
The issue is <local> must refer to interfaces that extend
javax.ejb.EJBLocalObject, i.e. the old style EJB 2.x interfaces. You
just need to update your descriptor to use the <business-local>
element instead as in:
<session>
<ejb-name>EmployeeServiceBean</ejb-name>
<business-local>t4.core.employee.EmployeeServiceLocal</business-
local>
<ejb-class>t4.core.employee.EmployeeServiceBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
</session>
That should fix the issue. Alternatively, you can let the annotation
do the work and leave EmployeeServiceLocal out of your ejb-jar.xml
entirely.
I'm surprised you didn't get a validation failure. We aggressively
check for all sorts of possible mistakes, such as using <business-
local> where <local> should be used or using <local> where <local-
home> should be used, etc. You just happened to find one we didn't
check for :) Looks like a pretty important one too! We will
definitely add it for the next release.
Thanks in advance for your help ;)
No problem!
And congratulations for the good job made on OpenEJB. I tried to use
other
embedded containers (JBoss Embedded, Glassfish embedded,
EJB3Unit, ...) and
met so many bugs I could not make them work. I am not far to succeed
with
Open EJB !
Thank you very much for the positive feedback, we definitely
appreciate it.
-David