2012-11-05 52 views
2

我对osgi相当陌生。请耐心等待。 我想公开一个SOAP Web服务客户端作为声明服务。我怎么做。我希望一步一步的教程。 我到目前为止已经能够启动equinox,编写声明式服务并使用相同的服务。osgi公开soap客户端作为声明服务

我坚持的是,我期望创建一个只包含服务接口类的包,然后创建一个实现上述接口的包。实现包应该是soap客户端,以便它与外部Web服务进行通信。

+0

到目前为止,你得到的一切都是正确的。你卡在哪里? –

+0

当我从wsdl生成java文件。生成的类不会实现我可以作为服务公开的接口。 – angelo

+0

我想将生成的java类作为服务部署,以便其他包可以重用。为了做到这一点,我必须有接口类。问题我没有接口,因为这些类是从wsdl生成的 – angelo

回答

1

服务注册表可以像接口一样处理类。这意味着你可以公开生成的类直接作为服务:

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

这并不是虽好做法,有以下几个原因:

  1. 你不得不生成的类从您的捆绑出口,暴露实施细节,这会伤害模块化。
  2. 目前还不清楚生成的类是否遵守OSGi服务生命周期。

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