簡體   English   中英

如何在MongoDB中存儲Apache Sling內容?

[英]How to store Apache Sling content in MongoDB?

我也是Java和Apache Sling的新手。 我一直在嘗試將Sling與MongoDB鏈接,這是我到目前為止所做的:

  1. 我在Sling控制台中配置了NoSQL MongoDB Resource Provider

NoSQL配置

  1. 然后, Oak Document Node Store Service

橡木配置

  1. 最后,我運行了java -Dsling.run.modes=oak_mongo -jar org.apache .sling.launchpad-9.jar -c sling -f -在mongodb模式下運行sling啟動板。 結果是:

命令提示符

結果,在MongoDB中創建了一個名為“ sling”的數據庫,我可以通過Robo-3T(一種MongoDB管理工具)看到該數據庫:

MongoDB的

在使用以下插件通過我的maven應用程序創建了一些內容並將其部署在Sling上之后,我能夠在Sling瀏覽器( http:// localhost:8080 / bin / browser.html )中看到新創建的節點和資源:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <version>3.3.0</version>
            <configuration>
                <instructions>
                    <Sling-Nodetypes>
                        SLING-INF/nodetypes/nodetypes.cnd
                    </Sling-Nodetypes>
                    <Sling-Initial-Content>
                        SLING-INF/scripts;overwrite:=true;uninstall:=true;path:=/apps/test1/nodes,
                        SLING-INF/content;overwrite:=true;uninstall:=true;path:=/content/test1
                    </Sling-Initial-Content>
                </instructions>
            </configuration>
        </plugin>
    </plugins>
</build>

但是,我需要將所有內容都存儲在MongoDB數據庫中,但目前沒有任何內容存儲在數據庫中。 我該如何實現?

最簡單的方法是使用以下參數啟動Sling Launchpad: -Dsling.run.modes=oak-mongo 這將確保將Oak配置為使用Mongo。 您必須刪除sling目錄,否則運行模式將不會更改。


您所做的嘗試是:

  1. 添加一個新的資源提供程序,該資源提供程序將當前資源提供程序隱藏在存儲庫根目錄中。 我不確定實際效果,可能已被拒絕-請參閱吊索錯誤日志
  2. 配置一個使用Mongo的新的Oak NodeStoreService-但由於已經有一個NodeStoreService在使用中,因此可能無法使用它-Sling需要一個來啟動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM