Cargo을 사용하여 컨테이너와 동일한 컴퓨터의 웹 어플리케이션에서 컨테이너를 관리하려고합니다. 지금까지 대부분의 작업을 수행 할 수 있었지만 처음으로 관리자 앱을 시작할 때 컨테이너 상태를 파악하는 데 어려움이 있습니다. Container 인스턴스를 처음 만들 때 container.getState()은 항상 State.UNKNOWN을 반환합니다. 문제는 이미 시작된 컨테이너를 시작하려고하면 추가 JVM이 만들어지고 현재 실행되지 않는 컨테이너를 중지하려고하면 응용 프로그램이 중단된다는 것입니다. 내 접근 방식은 다음과 같습니다 :화물 : 이미 설치된 컨테이너의 상태를 알아 내십시오.
ConfigurationFactory configurationFactory = new DefaultConfigurationFactory();
LocalConfiguration configuration = (LocalConfiguration) configurationFactory.createConfiguration(containerId, ContainerType.INSTALLED, ConfigurationType.STANDALONE, CARGO_CONFIGURATION_DIRECTORY);
DefaultContainerFactory containerFactory = new DefaultContainerFactory();
InstalledLocalContainer container = (InstalledLocalContainer) containerFactory.createContainer(containerId, ContainerType.INSTALLED, configuration);
assert container.getState() == State.UNKNOWN;
컨테이너의 실제 상태를 확인하는 방법이 있습니까? 컨테이너의 상태 (실제로 컨테이너를 시작/중지하기 전)에 대한 정보는 설치 여부에 관계없이 (ZipURLInstaller.isAlreadyInstalled()을 통해) 확인할 수 있습니다.