This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
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


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "Mock question about business interfaces" Watch "Mock question about business interfaces" New topic
Author

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;
@Local
public interface Foo2 {
public void foo();
}

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

import javax.ejb.*;
@Local
@Remote
public interface Foo4 {
public void foo();
}

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

---------
ANSWER:

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 ?

Thanks,

Beno�t


SCJP5 | SCBCD5 | SCEA5 Part 1
 
wood burning stoves
 
subject: Mock question about business interfaces