1
我做了一個bundle,部署在OSGI容器中,現在處於活動狀態,並提供一些服務。會話在使用SlingRepository服務時顯示爲空,爲什麼?
而且我有另一個使用這些服務和一個服務的軟件包,即SlingRepository,以獲得管理員預先製作Apache Jachrabbit中的節點。
第二個包只是使用寫在第一個包中的實現。
爲此,我編譯運行第二個bundle的Activate註解中的第一個bundle。 但是,當我部署第二個包時,它顯示會話的Null
。
@Reference
session = repository.loginadministrataive(null);
然後,我嘗試另一種方法,其中,使我在第一束一個類,而不是使另一個爲,即活化劑類,它實現BundleActivator的接口。但是這表明了同樣的問題。
你能告訴我如何解決這個問題?
你能告訴我如何使用第二包運行第一包?
在此先感謝。尋找你的答覆。
非常感謝。我解決了這個問題。我還用一些代碼發佈了完整的答案。再次感謝:)現在我陷入了另一個問題,我在其中放置了一些代碼激活第二個包的註釋,並且任務是抓取整個網站。現在我想在中間停下來,但它並沒有停止。你能告訴我怎樣才能阻止它? – devsda
您不應該在激活方法中添加長時間運行的代碼,而是需要設置組件需要的內容並啓動一個可以完成工作的線程。 Sling代碼庫中有許多示例,如果您查找包含Activate和Thread的代碼,您應該可以找到它們。 –
你可以給我鏈接。所以我可以在我的代碼中實現。 – devsda