2014-02-09 5 views
0

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() 메소드가 호출되지 않습니다.

질문 : 무엇이있을 수 있습니까? 메소드를 호출하려면 어떻게해야합니까?

답변

1

아마도 Geertjan의 블로그 [1]가 도움이 될 것입니다.

예를 들어 그는 @OnStart 주석을 사용합니다.

[1] https://blogs.oracle.com/geertjan/entry/simple_security_mechanism_for_the

+0

감사합니다, 그것은 알고하는 것이 좋다하지만,이 시간이 도움이되지 않습니다. 클래스를 수정할 수 없기 때문에 런타임 컨테이너가 설치 프로그램 클래스에서 restored() 메서드를 호출하지 않는 이유를 알아야합니다. – bakcsa83

+0

Mhh. 액티베이터/설치 프로그램을 사용하여 최소한의 새로운 프로젝트를 설정하고 이것이 작동하는지 확인하십시오. 그렇지 않다면 당신은 버그를 발견했습니다. 작동하는 경우 작동하는 샘플과 코드의 차이점을 조사 할 수 있습니다. – Ben

+0

activator가 등록되어 있고 예, 여러 활성기가있는 최소 프로젝트를 설정했으며 시작시 복원 된 모든 메소드가 호출되었습니다. Unfortunatelly 주어진 프로젝트는 속성과 XML 파일을 충분히 6 모듈로 구성되어 있습니다. 깊은 넷빈즈 경험이 없다면 그것은 이미 내게 악몽이고 아직도 끝이 보이지 않습니다. – bakcsa83