2012-11-23 114 views
0

我有兩個捆綁包A和B,捆綁包A有一個服務激活器,其中包含一個稱爲receive的方法來接收電子郵件,而捆綁包B使用來自捆綁包A的電子郵件,所以我想如何將服務激活器公開爲在OSGi的服務。OSGi和Spring集成

+0

我認爲你應該發佈一些代碼並添加更多的細節到你的問題。 – Mirco

回答

1

根據您的需求創建一個接口。我會爲您提供一個例子之一:

public interface Receiver { 

    void receive(String smth); 

} 

創建一個實現類:

public class ReceiverImpl implements Receiver { 
    @Override 
    public void receive(String smth) { 

    } 
} 

然後使用Spring這樣暴露接收機作爲OSGi服務:

<bean id="receiver" class="com.yourpackage.ReceiverImpl"/> 
<osgi:service ref="receiver" interface="com.yourpackage.Receiver"/> 

要使此工作確保您的Receiver捆綁包將清單條目中的包導出,並且您的Consumer捆綁包導入該包。

要調用接收器在其他捆綁使用:

<osgi:reference id="receiver" interface="com.yourpackage.Receiver"/> 

您可以將接收器的屬性,然後設置,將使用它的捆綁任何的Spring bean。