| 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:
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
|
 |
 |
|
|
subject: Mock question about business interfaces
|
|
|