0

我曾不幸尝试使用 Apache Jackrabbit 构建 jee 应用程序。它声称拥有资源适配器,以便可以将 jcr 与应用程序的服务器组件一起部署在 jee 服务器(geronimo 或 glassfish)中。例如,如果您在节点中有一个带有标签的文档存储库,那么您不希望所有与跨越 jvm 和内存空间边界相关的抖动。事实证明,Jackrabbits 资源适配器处于如此悲惨的状态,以至于它毫无用处。

建议我查看 Modeshape。我看到它喜欢 JBoss,这对我来说是新的。由于我看到了有关 JBoss 部署的更多信息,我被推向了那个方向,但面临不止一个新的学习曲线。Modeshape 似乎是一个充满活力的项目,但无论如何,这些天最重要的是 webapps,我所关心的性能问题并不相关。

我想知道我是否可以使用 Modeshape 和 JBoss 实现我一直在寻找的相同集成部署。如果我不能,我需要继续寻找,或者为了权宜之计,回到 jackrabbit 独立存储库并忍受性能下降,直到找到更好的东西。

感谢您的考虑。

4

1 回答 1

1

在最高级别,ModeShape 可以嵌入到单个 JVM 中,并且可以选择将这些 JVM 聚集在一起。

使用 Java SE,嵌入确实是正确的方法。ModeShape 与您的应用程序在同一个 JVM 中运行,因此所有访问都是本地的(尽管 ModeShape 可能仍将内容保存到远程数据库或系统)。您的应用程序实例化ModeShapeEngine并启动一个或多个存储库;应用程序从这些存储库中获取会话;当应用程序终止时,应用程序会关闭引擎。

在 Geronimo、Tomcat 和 JBoss 等应用服务器中,还有更多选项:

  • 你仍然可以在你的(web)应用程序中嵌入一个存储库,它的完成方式与上面提到的相同;或者
  • 您让服务器运行/管理 ModeShape 引擎,并且您的应用程序只需在 JNDI 中查找存储库

后者要么通过仅管理引擎生命周期的 ModeShape 的 JCA 适配器完成,要么通过由服务器管理系统直接管理的 ModeShape 的“子系统”(包括动态管理)为 JBoss(EAP 或 Wildfly,取决于 ModeShape 版本)完成存储库(部署或取消部署存储库、更改配置、监控等)。

无论哪种方式,您的应用程序都使用 JCR API 直接处理本地 ModeShape 存储库。唯一的问题是如何管理引擎。

于 2014-04-28T18:40:04.530 回答