2012-11-05 4 views
0

외부 웹 서비스를 사용하는 번들의 인스턴스를 여러 개 만들려면 어떻게해야합니까? 외부 웹 서비스를 사용하려면 클라이언트가 서비스를 사용하기 전에 로그온해야합니다. 여러 계정이 있습니다. 문제는 여러 인스턴스를 추가 할 수 있기를 원합니다. 각 계정마다 하나씩 각 인스턴스는 외부 서비스를 사용하는 osgi 선언적 서비스입니다.osgi - 서비스의 다중 인스턴스

각 계정마다 새 번들을 배포해야합니까? 이것은 이것을 해결할 올바른 방법이라고 생각하지 않습니다.

답변

1

해당 번들이 귀하의 통제하에 있습니까? 리팩토링 할 수 있습니까?

그렇다면 클라이언트 서비스 자체가 아닌 클라이언트 팩토리 서비스를 노출하는 것이 유용 할 수 있습니다. 그런 다음 각 인스턴스는 다른 계정으로 로그인 할 수 있습니다.

+0

번들을 제 제어 할 수 있습니다. 웹 서비스 생성 클래스를 사용하여 번들을 만듭니다. – angelo

+0

이것은 내가 추가 한 각 계정에 대해 다른 번들을 추가해야 함을 의미합니다. – angelo

+0

아니요, 그 이유는 공장을 권장하는 이유입니다. 'getInstance()'메소드를 호출하면 각 계정마다 별도의 인스턴스가 생성됩니다. –

4

OSGi 구성 요소 또는 서비스의 다중 인스턴스가 필요하며 번들의 다중 인스턴스는 필요하지 않습니다.

귀하의 서비스에 대해 (귀하의 경우에 계정 매개 변수) 작성하는 각 OSGi 구성이 생성되는 새로운 서비스 인스턴스가 생성되는 서비스 팩토리를 권하고 싶습니다.

http://njbartlett.name/2010/07/19/factory-components-in-ds.html의 Neil Bartlett의 튜토리얼은 좋은 출발점처럼 보입니다.