The moose likes EJB Certification (SCBCD/OCPJBCD) and the fly likes Mock question about business interfaces Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "Mock question about business interfaces" Watch "Mock question about business interfaces" New topic

Mock question about business interfaces

Benoît de Chateauvieux
Ranch Hand

Joined: Aug 10, 2007
Posts: 183
Hi all,

Which are valid declarations for a Local business interface?
public interface Foo1 {
public void foo();

import javax.ejb.Local;
public interface Foo2 {
public void foo();

import javax.ejb.*;
public interface Foo3 extends EJBLocalObject {
public void foo();

import javax.ejb.*;
public interface Foo4 {
public void foo();

A. Foo1, Foo2, Foo3
B. All of the above
C. Foo2
D. Foo1, Foo2


Foo1 is valid. There is no requirement that the interface be annotated with @Local.

Foo2 is valid. The @Local annotation may be used to directly annotate the interface.

Foo3 is invalid because a Local business interface must not extend javax.ejb.EJBLocalObject. EJBLocalObject is only used for EJB 2.x style Local interfaces.

Foo4 is invalid because a single business interface can not be both a Remote business interface and a Local business interface. This would be very dangerous since the interface would appear to be the same but would have different calling semantics(pass-by-value vs. pass-by-reference) depending on how it was used.

I have a doubt with Foo3.
The spec 4.6.6 says:
The interface must not extend the javax.ejb.EJBObject or javax.ejb.EJBLocalObject interface.

But my OC4J run without error.

What the expected result of defining a local business interface that extends javax.ejb.EJBLocalObject ?



SCJP5 | SCBCD5 | SCEA5 Part 1
I agree. Here's the link:
subject: Mock question about business interfaces
jQuery in Action, 3rd edition