저는 전체 Java 및 OSGi 세계에 새로운 경험이 있으며 OSGi 웹 애플리케이션의 환경 시스템을 이해하는 데 어려움이 있습니다.OSGi 웹 에코 시스템 전체를 이해하는 데 문제가 있습니다.
나는 에코 시스템의 모든 부분이 서로 관련되는 방법을 이해하려고 노력 순간에 나는 더 정확하게하려면
- OSGi 프레임 워크 (예를 들어, 아파치 펠릭스, 춘분, Knoplerfish)
- 은 OSGi 런타임 (예를 들어 스프링 DM 서버, 팍스 러너, 아파치 Karaf)
- 웹 익스텐더 (예 : 팍스 웹 익스텐더, 봄 웹 익스텐더)
- 웹 컨테이너 (예 : 아파치 톰캣, 부두)
이 이미지를 확인 당신에게 그들의 관계 내 실제 이해의 시각적 표현을 제공합니다 :
alt text http://img253.imageshack.us/img253/1631/osgiwebenvironmentschem.png
를 지금까지 내가 OSGi 프레임 워크는 OSGi 프레임 사양의 구현입니다 알고. 런타임은 예를 들어 로깅과 같은 OSGi 사양 위에 추가 기능을 추가하는 배포판입니다. Tomcat과 같은 OSGi와 웹 컨테이너의 클래스 패스 메커니즘에는 약간의 차이가 있기 때문에 번역기가 필요합니다. 이 부분은 "Web Extender"에 의해 처리됩니다.
제게이 모든 것을 분명히 설명해 주시겠습니까? 나는 모든 것이 정확하다는 것을 알고 있습니까?
빠른 응답을 부탁드립니다. 정상적으로 이해한다면 웹 익스텐더는 일반적으로 tomcat과 같은 웹 컨테이너에 배포되는 WAR 파일을 받아 OSGi 런타임에서 실행하게됩니다. 그런 다음 OSGi HttpService는 HTTP 프로토콜을 통해 "웹에서"사용할 수있게합니다. 옳은? 결론 : Tomcat과 같은 웹 컨테이너가 필요하지 않습니까? – Jens
네, 어떻게 맞는지 정확히 맞습니다. You'r 서비스는 OSGi http 서비스를 통해 제공됩니다. 그러나 실제로 웹 익스텐더는 웹 컨테이너를 사용하여 어쨌든 WAR를 배포합니다. 당신이 얻을 수있는 이점은 WAR가 OSGi 프레임 워크의 일반적인 시작 스크립트로 시작될 수 있으며, WAR는 OSGi 프레임 워크의 일반적인 종속성 관리에 참여할 수 있다는 것입니다 (예 : WAR : s 및 WAR : s에 의존 할 수 있음). 다른 OSGi 번들에 의존 할 수 있음). –
그리고 모든 서블릿은 OSGi http 서비스에 등록됩니다. –