私は静的コンテキストからUserServiceのにアクセスしていますがので、私は(mainメソッドから。)私はここUserServiceの目の前にstaticキーワードを使用しています私のテストclass.Inテストクラスから私のEJB Beanを呼び出していますEjbインターフェイスがNullPointerExceptionをスローするのはなぜですか?
注:また、私donotは、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");
}
}
Iセットアップ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私は電話をかけています私のテストクラスからのインターフェイスを使用してUserServiceBeanクラスのdoSomethingメソッドを使用しています。それは私にこのようなエラーを与えます。
Exception in thread "main" java.lang.NullPointerException
at test.Test.main(Test.java:17)
このエラーの原因を教えてください。
'userService'がnullの場合、何もそれに値を代入されません。 '@ Inject'アノテーションから期待していたことを想定していますが、実際にそのような振る舞いを設定していることは私には分かりません。私は、例えば静的なフィールドを注入可能とすることは期待していません。 – dimo414
私は静的コンテキストからuserServiceにアクセスしているのでここではstaticを使用しました。 UserServiceをインジェクトする目的は、EJB Bean(UserServiceBean)からの出力を呼び出すことによってその出力を取得することです。私の質問は非常に明確です。 –
あなたはどのコンテナを使用していますか? – HRgiger