【问题标题】:osgi - multiple instances of a serviceosgi - 服务的多个实例
【发布时间】:2012-11-05 23:11:41
【问题描述】:

如何创建使用外部 Web 服务的捆绑包的多个实例? 外部 Web 服务要求客户​​端在使用服务之前登录。我有多个帐户。问题是我希望能够添加多个实例;每个帐户一个。每个实例都是一个使用外部服务的 osgi 声明式服务。

我必须为每个帐户部署一个新捆绑包吗?感觉这不是解决这个问题的正确方法。

【问题讨论】:

    标签: soap client osgi multiple-instances


    【解决方案1】:

    您需要的是 OSGi 组件或服务的多个实例,而不是捆绑包的多个实例。

    我推荐一个服务工厂,您为服务创建的每个 OSGi 配置(在您的情况下为帐户参数)都会导致创建一个新的服务实例。

    Neil Bartlett 在http://njbartlett.name/2010/07/19/factory-components-in-ds.html 的教程看起来是一个很好的起点。

    【讨论】:

      【解决方案2】:

      该捆绑包是否在您的控制之下 - 您可以重构它吗?

      如果是,那么公开客户端工厂服务而不是客户端服务本身可能会很有用。 然后每个实例都可以登录到不同的帐户。

      【讨论】:

      • 捆绑包在我的控制之下。我使用 web 服务生成的类来制作包。
      • 这是否意味着对于我添加的每个帐户,我都必须添加另一个捆绑包
      • 不,这正是我推荐工厂的原因 - 调用它的 getInstance() 方法将为每个帐户创建单独的实例。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多