2017-12-26 28 views
0

내 로컬 환경에서 "start.bat"파일을 사용하여 응용 프로그램 번들을 시작합니다.OSGi in saaj 환경

java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console -noExit 

은 OSGi 내가 기존 플러그인을 나열 할 수 있습니다 방법에 의한 명령 프롬프트에서 시작되어 다음과 같이 같은

이다. 그러나 프로덕션은 saaj 환경이 될 것이고 프로세스 관리자 패키지를 설치하여 OSGi를 백그라운드 프로세스로 시작한다고 생각합니다. 그럼 내 질문은 그것을 모니터링하는 방법입니까? 번들을 시작하거나 중지하는 방법은 무엇입니까? 텔넷 연결을 만들려면 Apache Felix 웹 콘솔과 같은 모니터링 도구를 사용해야합니까? 클라우드 서버에서 할 수있는 쉬운 방법 (또는 일반적인 사용법)이 있습니까? OSGi 개념을 처음 사용하기 때문에 누군가이 문제에 대해 알려 줄 수 있습니까?

답변

0

몇 가지 추가 연구가 끝나면 내 상황에 대한 해결책을 찾았습니다. eclipse 춘분 ("osgi.console"과 동일)의 "-console"옵션은 host 및 port 매개 변수를 사용합니다. 그래서 (방금 추가 한 포트 번호)를 다음과 같이 내 시작 스크립트를 변경했습니다 ':

java -jar -ea -Declipse.ignoreApp=true -Dosgi.clean=true -Ddebug=true plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar -console 5555 -noExit 

그러나이 추가 구성은 몇 가지 추가 라이브러리와 OSGi 프레임 설정을 변경해야합니다. jar 파일을 같은 폴더에 "org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar"와 함께 배치해야했습니다. 그것은 내 환경의 플러그인 폴더입니다.

  • org.apache.felix.gogo.command_0.10.0.v201209301215.jar
  • org.apache.felix.gogo.runtime_0.10.0.v201209301036.jar
  • org.apache.felix.gogo.
  • org.eclipse.equinox.console_1.1.0.v20140131-1639.jar

두 번째로 내가 설정 한 내 config.ini 파일을 shell_0.10.0.v201212101605.jar. 그것은 키/값을 다음이 포함되어야합니다

[email protected], [email protected], [email protected], [email protected] 
osgi.noShutdown=true 
eclipse.ignoreApp=true 

이러한 변경 후, 나는 단순히 주어진 포트로 telnet 연결을 사용하여 명령 줄에서 OSGi의 런타임에 명령을 전달할 수 있습니다. 까다로운 점은 OSGi는 ssh 연결을 종료하더라도 'exit'를 입력하여 OSGi 콘솔을 종료 할 때까지 항상 작동한다는 것입니다.

참조 : 그것은 매우 불안정하기 때문에 OSGi Modularity - Tutorial

+0

당신은 프로덕션 환경에서 텔넷 쉘을 사용하지 않아야합니다 : 그것은 어떤 해커가 사용자의 컴퓨터에서 임의 코드를 실행할 수 있습니다. 대신 Felix Gogo 쉘에서 제공하는 ssh 기능을 사용하십시오 : https://stackoverflow.com/questions/30590137/apache-felix-shell-with-ssh#31037001 –