From Java EE 5 specs:
EE.9.4 Resources, Naming, and Injection
As with all Java EE components, application clients use JNDI to look up enterprise
beans, get access to resource managers, reference configurable parameters set at
deployment time, and so on. Application clients use the java: JNDI namespace to
access these items (see Chapter EE.5, “Resources, Naming, and Injection” for
details).
Injection is also supported for the application client main class. Because the
application client container does not create instances of the application client
main class, but merely loads the class and invokes the static main method,
injection into the application client class uses static fields and methods, unlike
other Java EE components. Injection occurs before the main method is called.
To summarise - injection and JNDI are available for clients. EJB and other resources may be injected, but only to static fields / properties in the class designated as Main-Class in MANIFEST.MF.
Whereas injecting an EJB is just fine, injecting an EJBContext doesn't look correct to me. I don't any specs section to back it up, unfortunately.
On the bright side, this is a cert forum, and for that, you don't have to worry about client containers - these are not a requirement.
Raf