개발/OSGI

0. OSGi 환경구축 (단독 실행 방법)

오제이튜브[OJ Tube] 2020. 2. 7. 02:01

1. OSGi 단독 실행하기
 
전에 쓴 글에..
아래와 같이 썻었다..
 

우선 조사 자료에 의하면 이클립스를 설치하고
org.eclipse.osgi_3.2.1.R32x_v20060919.jar 와 같은 파일을 이클립스 내에서 찾아서.
 
 
 
java -jar org.eclipse.osgi_3.2.1.R32x_v20060919.jar console
의 명령어로 실행 하면
 
osgi>
 
위처럼 콘솔창이 뜬다고 하는데..
그냥 먹통으로 가만히 있는다..
원인을 모르겠다..

 
원인을 알았다..
 
 
우선 OSGi 공식 홈페이지 나온글이.. 업데이트가 안돼있었다.
아무튼 위에 방법은 옛날 방법이다.
 
 
java -jar org.eclipse.osgi_3.2.1.R32x_v20060919.jar console consoleLog
 
맨 위의 명령어에 consoleLog를 추가하면 에러 메시지를 볼수 있다..
 
 
 
!ENTRY org.eclipse.osgi 4 0 2018-01-04 15:37:18.466
!MESSAGE Could not find bundle: org.eclipse.equinox.console
!STACK 0
org.osgi.framework.BundleException: Could not find bundle: org.eclipse.equinox.console
at
.
.
.
 
이런 에러메세지 인데.. 번들을 찾을수 없단다..
아무튼 저게 원인인데.. 그래서 검색을 해보니
 
방법을 찾았다.
 
 
최신 버전에는
 
org.eclipse.equinox.console.jar
org.apache.felix.gogo.shell.jar
org.apache.felix.gogo.command.jar
org.apache.felix.gogo.runtime.jar
 
파일이 더필요 하단다...
 
위 파일은 전부 이클립스 폴더에 찾아보면 있다..
검색 해보자
 
보통 파일을 검색 해보면
 
 

 
뒤에 버전이 붙어서 있는데.. 저 버전 부분은 삭제하고
아래와 같이 파일과 폴더를 구성한다.
 
 

 
 
다 구성 되면
 
configuration 폴더 안에
confit.ini 파일을 하나 만들고
 
osgi.bundles=org.apache.felix.gogo.runtime@start, org.apache.felix.gogo.command@start, org.apache.felix.gogo.shell@start, org.eclipse.equinox.console@start
 
라고 입력한다.
 
그리고 cmd 창 하나를 띄우고..
 
해당 폴더로 가서
 
java -jar org.eclipse.osgi.jar console 라고 실행하면
 
osgi> 라는 입력란을 드디어 볼 수 있을 것이다..
 
 
만세!!!
 

 
이제 해보면 예제랑 똑같이 된다..
근데 ..
 
ss를 쳐보면 예제랑 다르게 번들이 4개가 더 등록 되어있다.
 
id State Bundle
0 ACTIVE org.eclipse.osgi_3.12.1.v20170821-1548
5 ACTIVE org.apache.felix.gogo.runtime_0.10.0.v201209301036
6 ACTIVE org.apache.felix.gogo.command_0.10.0.v201209301215
7 ACTIVE org.apache.felix.gogo.shell_0.10.0.v201212101605
8 ACTIVE org.eclipse.equinox.console_1.1.300.v20170512-2111
osgi>
 
 
저것들은 아까 설정한 config.ini과 연관된 것들이다.