(The following exam question appears from EJBCertificate.com and is not taken from the real SCBCD exam set.)
What I need is an expert opinion on the why option number 5 is correct. Why can't an
EJB class have a package structure? Head First EJB even suggests a package structure is possible given the contents of an ejb jar are the META-INF directory AND the PACKAGE DIRECTORIES. Is this question wrong?? What's all this talk of a security hole? That certainly didn't get mentioned in HFEJB!
Identify correct programming restrictions that a Bean provider must follow to ensure that the enterprise bean is portable and can be deployed in any compliant EJB 2.0 Container. [Select all correct answers]
1 The enterprise bean cannot define read and write to static fields.
2 The enterprise bean cannot make use of the
Java Swing API.
3 The enterprise bean cannot make use of interfaces to define business methods.
4 The enterprise bean cannot make use of the Sun JavaMail API.
5 The enterprise bean must not attempt to define a class in a package.
Explanation
Answers 1, 2 and 5 are correct.
Answer 1 is correct. This rule is required to ensure consistent runtime semantics because while some EJB Containers may use a single JVM to execute all enterprise bean's instances, others may distribute the instances across multiple JVMs.
Answer 2 is correct. Most servers do not allow direct interaction between an application program and a keyboard/display attached to the server system.
Answer 5 is correct. This function is reserved for the EJB Container. Allowing the enterprise bean to perform this function would create a security hole.
Answer 3 is incorrect. It is possible to create an interface and implement the interface to make available in the enterprise bean business method.
Answer 4 is incorrect. The enterprise bean can make use of the JavaMail API.