2012-11-05 88 views
0

如何創建使用外部Web服務的包的多個實例? 外部Web服務需要客戶端在使用服務之前登錄。我有多個帳戶。問題是我想能夠添加多個實例;每個帳戶一個。每個實例都是使用外部服務的osgi聲明式服務。osgi - 服務的多個實例

我是否必須爲每個帳戶部署新的捆綁包?這並不是解決這個問題的正確方法。

回答

1

這是你的控制束 - 你能重構它嗎?

如果是,則公開客戶端工廠服務而非客戶端服務本身可能很有用。 然後每個實例都可以登錄到不同的帳戶。

+0

該包在我的控制之下。我使用webservice生成的類來製作這個包。 – angelo

+0

這是否意味着對於我添加的每個帳戶,我必須添加另一個包 – angelo

+0

否,這正是我推薦工廠的原因 - 調用它的getInstance()方法將爲每個帳戶創建單獨的實例。 –

4

你需要的是一個OSGi組件或服務的多個實例,而不是一個bundle的多個實例。

我推薦一個服務工廠,其中爲您的服務創建的每個OSGi配置(您的情況下的帳戶參數)都會導致創建服務的新實例。

Neil Bartlett的教程http://njbartlett.name/2010/07/19/factory-components-in-ds.html看起來是一個很好的起點。