Can an EJB bean implement multiple interfaces?

user1684651 picture user1684651 · Dec 21, 2012 · Viewed 7.3k times · Source

Can an EJB bean implement multiple user defined interfaces, except business interfaces (@Local, @Remote) or No-Interface view (@LocalBean)?

For example define two interfaces UserInterface1, UserInterface2, with no annotation.

Is this legal to implement:

@Stateless
public class MyBean implements UserInterface1, UserInterface2 { ...

Then I have another confusion:

@Stateless
public class MyBean implements Runnable { ...
//inside I won't try to manage thread
}

Is this legal or illegal, I found that glassfish support this situation.

Answer

Arjan Tijms picture Arjan Tijms · Dec 21, 2012

The given example is illegal, but nevertheless accepted by quite some implementations (application servers).

David Blevins started a thread about this on the EJB mailing list a while ago.

EJB 3.2 will make the rules more clear for this topic. See What's new in EJB 3.2 ? - Java EE 7 chugging along! (look for section Simplified the rules to define all local/remote views of the bean)