我從我的測試class.In測試類我使用static關鍵字在這裏userService的前面,因爲我是從訪問靜態上下文的userService打電話給我的EJB bean爲什麼Ejb接口拋出NullPointerException?
注(從主要方法。):另外如果我不使用userService前面的靜態關鍵字,那麼我也得到了同樣的錯誤。
public class Test {
@Inject
private static UserService userService;
public Test() {
// TODO Auto-generated constructor stub
}
public static void main(String args[]){
userService.doSomething("hello");
}
}
我設置的EJB 3接口/實現這樣看...
UserService(接口)
package business;
public interface UserService {
public String doSomething();
}
UserServiceBean(實現)
@Stateless
@Local
public class UserServiceBean implements UserService{
public UserServiceBean() {
}
@Override
public String doSomething() {
return "Work done!";
}
}
W我打電話doSomething方法 UserServiceBean類使用我的Test類的接口。它給了我這樣的錯誤。
Exception in thread "main" java.lang.NullPointerException
at test.Test.main(Test.java:17)
請解釋爲什麼會出現此錯誤。
'userService'爲空,並沒有被分配一個值。從'@ Inject'註釋中,我認爲你*期望有這樣做的事情,但是我不清楚你實際上是否配置了這樣的行爲。例如,我不希望「靜態」字段是可注射的。 – dimo414
我在這裏使用靜態,因爲我從靜態上下文訪問userService。或者注入UserService的目的只是通過調用EJB bean(UserServiceBean)來獲取輸出。我的問題很清楚。 –
你正在使用什麼容器? – HRgiger