문제

었으로 보고 OSGi 최근고 생각하는 것 같아 정말 좋은 아이디어를 위한 모듈식 Java 다.

그러나 내가 어떻게 OSGi 일 웹 응용 프로그램에서,당신은 그냥 없 코드에 대해 걱정-도 HTML,이미지,CSS,는 종류의 것입니다.

에 작동 우리는 건물 수있는 응용 프로그램은 여러'탭을',각각의 탭을 하나 되는 응용 프로그램의 일부입니다.나는 생각이 정말로부터 혜택을 복용 OSGi 접근--그러나 나는 정말로 무엇을 할 수있는 가장 좋은 방법이 될 것이를 처리하는 모든 일반적인 웹 앱을 리소스입니다.

하지 않은데요 그것은 어떤 차이가 있지만,우리가 사용하여 JSF 고 IceFaces (의 또 다른 레이어를 추가 하는 문제가 있기 때문에 탐색 및 규칙을 지정하려면 모든 얼굴에 config 파일에서 당신의 web.xml...doh!)

편집:에 따라 이 스레드,faces-config.xml 파일을 로드할 수 있는지에 JAR 파일을-그래서 실제로 가능한 여러가 faces-config.xml 포함된 파일을 수정하지 않고 web.xml 제공해 당신 분으로 JAR 파일이 있습니다.

어떤 제안을 크게 감상 할 수있다:-)

도움이 되었습니까?

해결책

당신은 매우 오른쪽에서 생각하기 시너지 효과를 여기에,우리는 모듈형 웹 응용 프로그램 응용 프로그램 자체가 조립된 자동으로부터 독립품(OSGi 뭉치)각 묶여 자신의 페이지,자원,css 선택적으로 자바 스크립트.

우리는 사용하지 않는 JSF(Spring MVC 여기)그래서 나는 주의 복잡성는 프레임워크 OSGi 다.

대부분의 프레임워크 또는 접근이 거기에 여전히 준수"old"생각하는 방법:하나의 전쟁에 파일을 나타내는 당신의 웹 애플리케이션과 그 많은 OSGi 뭉치고 서비스하지만 거의 아무도는 우려와 함께 자신의 모듈화의 GUI 자체입니다.

을 위해서는 반드시 필요한 요소 디자인

와 OSGi 첫 번째 질문입니다:무엇을 배포 시나리오 그리고 누가 기본 컨테이너?내가 무엇을 의미하는 애플리케이션을 배포할 수 있습니다 on OSGi 런타임과용 인프라에 대한 모든 것입니다.또는,당신은 당신이 포함 할 수 있습니다 OSGi 런타임에서 기존의 응용 프로그램 서버와 다음해야 합니다 다시 사용하는 일부 인프라,구체적으로 사용하고 싶을 어플리케이션의 servlet engine.

우리의 디자인은 현재 OSGi 기반으로 컨테이너 및 우리가 사용하는 HTTPService 에 의해 제공 OSGi 으로 우리의 servlet 컨테이너입니다.우리는 우리를 찾으로 제공하는 몇 가지 종류의 투명 브릿지 사이에서 외부 servlet 컨테이너 OSGi HTTPService 하지만 작업이 진행 중이다.

건축의 스케치 Spring MVC+OSGi 모듈식 웹 애플리케이션

그래서 목표지를 제공한 웹 응용 프로그램을 통해 OSGi 하지만 또한 적용 OSGi 의 구성 요소를 모델하여 web UI 자체가,그것을 구성 가능,재사용,역동적입니다.

이러한 시스템 구성 요소:

  • 1 중앙는 번들의 브리징 Spring MVC 와 OSGi,특히 사용 코드 번드 Kolb 을 등록할 수 있도록 봄 DispatcherServlet 와 OSGi 로 servlet.
  • 1 사용자 지정한 URL 매퍼는 것으로 주입됩니다.DispatcherServlet 제공하고의 매핑을 수신하는 HTTP 요청을 올바른 컨트롤러입니다.
  • 1 중앙 Sitemesh 기반으로 장식 JSP 을 정의하는 글로벌 사이트의 레이아웃뿐만 아니라,중앙 CSS and Javascript 라이브러리는 우리가 원하으로 제공하는 기본값으로 초기화합니다.
  • 각각의 번들에 기여하고자하는 페이지는 웹 UI 에는 게시 1 개 또는 그 이상의 컨트롤러 OSGi 서비스하고 있는지 확인 등록 그것의 자신 플랫폼에 이식 가능하고 최신 자원(CSS,JSP,이미지 등) 로 OSGi HTTPService.등록을 완료 한 HTTPService 와 키는 방법은 다음과 같습니다.

    httpService.registerResources() 고 httpService.registerServlet()

경우 web ui 에 기여하는 번들을 활성화와 게시합 컨트롤러,그들은 자동으로 선택하여 우리의 중앙 web ui 뭉치고 상기 사용자 지정한 URL Mapper 수집합 이러한 컨트롤러에는 서비스는 최신의 지도 Url 을 컨트롤러 인스턴스가 있습니다.

그런 다음 경우 HTTP 요청에서 특정 URL 로 찾은 관련된 컨트롤러를 전달합 요청이 있다.

컨트롤러는 사업한 후 모든 데이터를 반환해야 하는 렌더링 의 이름을 넣(JSP 에서 우리의 경우).이 JSP 에 위치한 컨트롤러의 번들에 액세스할 수 있는 렌더링에 의해 중앙 web ui 번들을 정확하게 때문에 우리가 및 등록된 리소스에 위치와 HTTPService.우리의 중앙 볼 해결 프로그램은 다음 합이 JSP 와 우리의 중앙 Sitemesh 장식하고 뱉어 결과 HTML 을 클라이언트입니다.

에서 알고 이것은 오히려 높은 수준만을 제공하지 않고 완전한 구현에 그것의 하드를 완전히 설명하고 있습니다.

우리의 주요 학점 이를 보고 했 what Bernd Kolb 았 그의 예 JPetstore 변환 OSGi 과 정보를 사용하여 디자인 우리 자신의됩니다.

이럴 현재는 너무 많이 과대 광고에 초점을 얻 OSGi 어떻게든 임베디드 전통 Java EE 기반 애플리케이션과 아주 작은 생각으로 실제로 사용하 OSGi 어와 그 우수성 모델을 정말로 허용한 디자인의 구성 요소화된 웹 응용 프로그램입니다.

다른 팁

체크 아웃 Springsource DM 서버 - OSGI 및 지원 모듈 식 웹 응용 프로그램 측면에서 전적으로 구축 된 응용 프로그램 서버. 무료, 오픈 소스 및 상업용 버전으로 제공됩니다.

표준 전쟁 파일을 배포하여 시작한 다음 점차적으로 응용 프로그램을 OSGI 모듈 또는 OSGI-SPEAK에서 '번들'으로 나눌 수 있습니다. Springsource에서 기대할 수 있듯이 서버는 Spring Framework 및 관련 스프링 포트폴리오 제품을 지원합니다.

면책 조항 : 저는이 제품을 작업합니다.

스프링 DM 서버를 알고 있어야합니다 라이센스.

우리는 사용하고 있습니다 restlet 내장 된 HTTP 서비스를 사용하여 OSGI가 잘 효과가있는 경우 (커버 아래에는 실제로 부두이지만 Tomcat도 사용할 수 있습니다).

Restlet은 최소 XML 구성 요구 사항이 0에서 최소화되며, 우리가하는 모든 구성은 BundLeactivator (새 서비스 등록)에 있습니다.

페이지를 작성할 때는 관련 서비스 구현을 처리하여 출력, 데코레이터 스타일을 생성합니다. 연결되는 새로운 번들은 다음에 렌더링 될 때 새로운 페이지 장식/위젯이 추가됩니다.

휴식은 우리에게 깨끗하고 의미있는 URL, 동일한 데이터의 여러 표현을 제공하며, 확장 가능한 은유 (동사 몇, 많은 명사)를 제공합니다.

우리를위한 보너스 기능은 캐싱, 특히 ETAG에 대한 광범위한 지원이었습니다.

Springsource는 OSGI 위에 구축 된 흥미로운 모듈 식 웹 프레임 워크를 연구하고있는 것 같습니다. Springsource 조각. 자세한 내용은 다음 블로그 게시물에서 찾을 수 있습니다.

랩을보세요! http://www.eclipse.org/rap/

보세요 http://www.ztemplates.org 간단하고 배우기 쉽습니다. 이를 통해 모든 관련 템플릿, 자바 스크립트 및 CSS를 하나의 항아리에 넣고 투명하게 사용할 수 있습니다. 제공된 구성 요소를 사용할 때 프레임 워크가 귀하를 위해 수행 할 때 페이지에서 필요한 JavaScript를 선언하는 것에 대해 신경 쓰지 않아도됩니다.

흥미로운 게시물 세트. 고객별로 사용자 정의되는 웹 응용 프로그램이 있습니다. 각 고객은 가입 한 내용에 따라 핵심 구성 요소 및 추가 구성 요소를 얻습니다. 각 릴리스마다 올바른 서비스 세트를 '조립'하고 고객을 기반으로 올바른 메뉴 구성 (Struts 메뉴를 사용)을 적용해야합니다. 기본적으로 동일한 코드 기반이지만 내비게이션을 사용자 정의하여 특정 페이지를 노출 시키거나 숨 깁니다. 이것은 분명히 이상적이지 않으며 OSGI를 활용하여 서비스를 구성하고 싶습니다. 서비스 API에 대해 어떻게 수행되는지 알 수 있고 CSS 및 Java 스크립트 및 컨트롤러와 같은 리소스 (Spring MVC를 사용하는 방법)와 같은 리소스를 이해하는 방법을 알 수 있지만 Page Navigation과 같은 '크로스 절단'문제를 다루는 방법 특히 새로운 서비스를 동적으로 배포하고 해당 서비스에 내비게이션을 추가 해야하는 시나리오에서 일반적인 작업 흐름. 다른 서비스에 걸친 서비스와 같은 다른 '크로스 절단'문제가있을 수도 있습니다. 고마워, 데란.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top