EJBセッションBeanが動作しない理由を理解できません。実際のエラーメッセージはEJBException:NameNotFoundExceptionですが、それは非常に明るいメッセージではありません。EJBセッションBeanが正しく初期化されない(NameNotFoundException)
私はそれを追跡して、問題の原因となった行を正確に特定しましたが、その理由を把握していません。だから、私はフォームから入力値を追跡するためにセッションBeanを作成したかったのです。
Aはコードのバージョンをスリム化:
public class rrpInputField {
public boolean isRequired;
public int maxLength;
public String inputValue;
public String displayValue;
public String formatMask;
public rrpInputField() {
isRequired = false;
maxLength = 64;
inputValue = "";
displayValue = "";
formatMask = "";
}
}
Iは、次にインターフェイスdohickyを作成...
@Local
public interface Test1 {
public void setAction(String action);
public String getAction();
public void setName(String name);
public String getName();
}
は、その後、私は試験豆自体を作成...
@Stateful
public class Test1Bean implements Test1 {
private String action;
private rrpInputField name;
@PostConstruct
public void initialize() {
action = "initalValue";
//name.currentValue = "TestValue";
@Override
public void setAction(String action){ this.action = action; }
@Override
public void getAction() { return this.action; }
@Override
public void setName(String name) { this.name.currentValue = name; }
@Override
public String getName() { return this.name.currentValue; }
}
私のテストサーブレットには私が持っています
@EJB
private Test1 t1;
Bean定義のBean初期化メソッドの1行をコメント解除すると、エラーが発生します。だから私はそれがそれと関係があることを知っている。 //name.currentValue = "TestValue";
私がコメントアウトしたままにすると、サーブレットのt1.getName( "新しい値")を記述するとすぐに同じエラーが発生します。
コメントアウトしておけば、Beanは予期したとおりに動作します。私は初期化でき、setActionとgetActionを使っても問題ありません。
私は、サーブレットでコーディングできるのでrrpInputクラスは、正しいことをかなり確信している:
rrpInputField f1 = new rrpInputField();
f1.currentValue = "TestValue";
私はそれが私の入力フィールドのクラスとは何かを持っている必要があります理解が、私は運把握を持っていません何を出すか。
は、基本的なNullPointerExceptionのように聞こえます。フィールドにアクセスする前に、名前にインスタンスを割り当てます。 "name = new rrpInputField();" –