"bcn" wrote : 
  | 1. Can you really use the EJB annotation only in the main class (and only 
for static fields)? 
  | 

That's what the spec says.

"bcn" wrote : 
  | In real-world application that would make it almost useless.
  | 
  | 

Why do you think so?

>From what i understand, they do have a valid reason for making this 
>restriction. Consider you have a Main class into which you have to inject the 
>bean. Remember that when you use 'java' to run this class, it invokes the 
>static main method. So if you want to access the injected EJB, that member too 
>should be static. In some of the examples, users usually create an object of 
>the same class in the static main method and then use the instance variables:

  | public class MyClass {
  | 
  |  @EJB
  |  private MyEJB bean;
  | 
  |  public static void main(String args[])
  |  {
  |     MyClass obj = new MyClass();
  |     obj.callMyMethod();
  |  }
  | 
  |  public void callMyMethod() 
  |  {
  |     bean.xxxMethod();
  |  } 
  | }

Consider this scenario shown above. A new object of the class was created and 
then used to access the bean. The application client container has no way to 
inject the @EJB for this newly created object (since it has no control on it).

That's the reason (in my opinion) why the field has to be static.


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184382#4184382

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4184382
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to