java - 如何在 MongoDB 中存储 Apache Sling 内容?

标签 java mongodb maven sling jackrabbit-oak

我也是 Java 和 Apache Sling 的新手。我一直在尝试将 Sling 与 MongoDB 链接起来,到目前为止我已经做了这些:

  1. 我在 Sling 控制台中配置了 NoSQL MongoDB 资源提供程序:

NoSQL config

  • 然后是Oak 文档节点存储服务:
  • Oak config

  • 最后我运行了java -Dsling.run.modes=oak_mongo -jar org.apache .sling.launchpad-9.jar -c sling -f - 在 mongodb 模式下运行 sling launchpad。结果如下:
  • Command Prompt

    结果,在 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. 添加一个新的资源提供程序,它会隐藏存储库根目录中的当前资源提供程序。我不确定实际效果,可能会被拒绝 - 请查看 sling 错误日志
    2. 配置一个使用 Mongo 的新 Oak NodeStoreService - 但它可能不会被拾取,因为已经有一个 NodeStoreService 正在运行 - Sling 需要一个 NodeStoreService 才能启动。

    关于java - 如何在 MongoDB 中存储 Apache Sling 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47236588/

    相关文章:

    javascript - 自定义验证器,cb不是函数

    maven - 如何在 IntelliJ IDEA 中自动禁用 Maven 自动导入?

    android - 第二个 maven-repository 被忽略

    java - 解析 applicationContext.xml 呈现 `java.lang.NoSuchMethodError` 。这可能是由依赖性问题引起的吗?

    java - openjpa2.0如何在运行时增强实体?

    java - 用于开发中型 Java 应用程序的资源

    使用 MongoDB "$in"运算符的 Javascript 查询生成器

    node.js - 带有对象数组的 Mongoose 条件更新

    maven - Gradle的 “local repository”与Maven相似吗?

    java - 失败: HTTP error code : 400 While postin JSON data to URL