【问题标题】:osgi exposing soap client as declarative serviceosgi 将soap客户端暴露为声明式服务
【发布时间】:2012-11-05 19:28:19
【问题描述】:

我对 osgi 还很陌生。请耐心等待。 我想将一个肥皂网络服务客户端公开为声明性服务。我怎么做。我将不胜感激一步一步的教程。 到目前为止,我已经能够启动 Equinox,编写声明式服务并使用相同的服务。

我卡住的地方是,我希望创建一个仅包含服务接口类的包,然后创建一个实现上述接口的包。实现包应该是soap客户端,以便它与外部网络服务通信。

【问题讨论】:

  • 到目前为止,您一切正常。你被困在哪里了?
  • 当我从 wsdl 生成 java 文件时。生成的类没有实现我可以作为服务公开的接口。
  • 我想将生成的 java 类部署为服务,以便其他包可以重用。为了做到这一点,我必须有接口类。我没有接口的问题,因为类是从 wsdl 生成的

标签: soap service client osgi declarative


【解决方案1】:

服务注册中心可以像处理接口一样处理类。这意味着您可以将生成的类直接公开为服务:

<service>
    <provide interface="your.generated.clazz"/>
</service>

但这不是一个好的做法,有几个原因:

  1. 您必须从包中导出生成的类,从而暴露实现细节,这会损害模块化。
  2. 尚不清楚生成的类是否遵守 OSGi 服务生命周期。

理想情况下,您应该编写一个使用生成的类的代理服务,公开所有特定于 OSGi 的功能并实现您想要公开的接口。

【讨论】:

    猜你喜欢
    • 2011-10-11
    • 2017-04-16
    • 2015-07-18
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2013-10-09
    相关资源
    最近更新 更多