6 개의 모듈로 구성된 Netbeans Platform Application이 있습니다. 이 모듈 중 하나에는 로그인 메카니즘을 시작하는 클래스가 있습니다. 이 클래스는 Installer라고하는 표준 Netbeans Installer 클래스이며 ModuleInstall을 확장합니다.Installer 클래스의 restored() 메소드가 호출되지 않습니다.
나는 전체 클래스를 게시 할 수 있지만 다음과 같습니다
public class Installer extends ModuleInstall {
private static final String CHECK_DB = "Checking db connection at startup";
private LoginForm loginForm = new LoginForm();
private static Logger logger = LoggerFactory.getLogger(Installer.class);
public boolean closeApp = false;
@Override
public boolean closing() {
getDBPreferencesService().clearPassoword();
closeApp = true;
return closeApp;
}
@Override
public void restored() {
logger.info(CHECK_DB);
load();
}
private void load() {
//stuffs
}
}
내가 ModuleInstall()에서 복원 재정의 복원() 메소드가 있습니다. 모듈의 MANIFEST.MF 파일에 다음 행이 포함
OpenIDE-Module: org.app.station
OpenIDE-Module-Install: org/app/station/login/Installer.class
OpenIDE-Module-Localizing-Bundle: org/app/station/Bundle.properties
OpenIDE-Module-Requires: org.openide.windows.WindowManager
문제 : 메인 창에 표시되는 시작 화면 후 응용 프로그램을 실행합니다. restored() 메소드가 호출되지 않습니다.
질문 : 무엇이있을 수 있습니까? 메소드를 호출하려면 어떻게해야합니까?
감사합니다, 그것은 알고하는 것이 좋다하지만,이 시간이 도움이되지 않습니다. 클래스를 수정할 수 없기 때문에 런타임 컨테이너가 설치 프로그램 클래스에서 restored() 메서드를 호출하지 않는 이유를 알아야합니다. – bakcsa83
Mhh. 액티베이터/설치 프로그램을 사용하여 최소한의 새로운 프로젝트를 설정하고 이것이 작동하는지 확인하십시오. 그렇지 않다면 당신은 버그를 발견했습니다. 작동하는 경우 작동하는 샘플과 코드의 차이점을 조사 할 수 있습니다. – Ben
activator가 등록되어 있고 예, 여러 활성기가있는 최소 프로젝트를 설정했으며 시작시 복원 된 모든 메소드가 호출되었습니다. Unfortunatelly 주어진 프로젝트는 속성과 XML 파일을 충분히 6 모듈로 구성되어 있습니다. 깊은 넷빈즈 경험이 없다면 그것은 이미 내게 악몽이고 아직도 끝이 보이지 않습니다. – bakcsa83