EJB 세션 빈이 작동하지 않는 이유를 파악하는 데 문제가 있습니다. 실제의 에러 메세지는, EJBException : NameNotFoundException입니다 만, 이것은 매우 밝은 메세지는 아닙니다.EJB 세션 빈이 올바르게 초기화되지 않음 (NameNotFoundException)
정확히 어떤 줄이 문제를 일으키는 지 추적했지만 이유를 파악하지 못했습니다. 그래서 폼에서 입력 값을 추적하기 위해 세션 빈을 만들고 싶었습니다.
코드의 몸매는 여전 하구나 버전입니다 :
나는 다음 인터페이스 dohicky을 만들어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 = "";
}
}
이 ...
@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 초기화 메소드의 한 행을 주석 처리하지 않으면 실패합니다. 그래서 나는 그것이 그것과 관련이 있다는 것을 압니다. //name.currentValue = "TestValue";
서블릿에서 t1.getName ("새 값")을 코딩하자마자 주석으로 남겨두면 동일한 오류가 발생합니다.
내가 주석 처리 한 채로두면 예상대로 Bean이 작동합니다. 초기화 할 수 있으며 setAction 및 getAction을 사용하면됩니다.
은 내가 서블릿에서 코딩 할 수 있기 때문에 rrpInput 클래스는, 정확 상당히 확신 :
rrpInputField f1 = new rrpInputField();
f1.currentValue = "TestValue";
내가 내 입력 필드 클래스를 함께 할 수있는 뭔가가 있어야 그림,하지만 난내는 운이 없었을 뭐라구.
은 기본 NullPointerException처럼 들립니다. 필드에 액세스하기 전에 이름을 지정할 인스턴스를 지정하십시오. "name = new rrpInputField();" –