Open source 构建ApacheSling、Felix和Jackrabbit项目的目的是什么

Open source 构建ApacheSling、Felix和Jackrabbit项目的目的是什么,open-source,apache-felix,sling,jackrabbit,Open Source,Apache Felix,Sling,Jackrabbit,我在这里问一个非常基本的问题 问题是 正如我的导师所说,我在我的项目中使用了ApacheSling、ApacheJackrabbit和ApacheFelix。我试图理解为什么这些软件是由Apache开发的。我在互联网上做了很多尝试,但我没有找到任何博客或wordpress博客,或任何有用的youtube视频来解释所有这些项目。你能给我解释一下这些项目吗 Why these projects developed? What they do ? and more questions like t

我在这里问一个非常基本的问题

问题是

正如我的导师所说,我在我的项目中使用了ApacheSling、ApacheJackrabbit和ApacheFelix。我试图理解为什么这些软件是由Apache开发的。我在互联网上做了很多尝试,但我没有找到任何博客或wordpress博客,或任何有用的youtube视频来解释所有这些项目。你能给我解释一下这些项目吗

Why these projects developed?

What they do ?

and more questions like this
之前,我对ApacheHadoop也有同样的怀疑,但我在网上找到的所有资料都足以让我对这个项目有所了解。这一次,我在和Sling、Felix、Jackrabbit搏斗


我会非常感谢你。等待您的响应。

ApacheJackrabbit、ApacheSling和ApacheFelix的组合允许您构建web应用程序

是的参考实现。管理内容存储库;管理,例如,web内容。内容存储库是文件系统和数据库的混合体

JCRAPI是专门用来处理web内容的。为什么要使用JCR API,为什么不使用关系数据库API?URL是分层的,就像在文件系统中一样。关系数据库不容易支持分层访问。为什么不使用文件系统API?因为JCR支持事务、版本控制和许多其他文件系统API不支持的功能

是一个基于JCR API的web框架,它利用了JCR API()提供的特性


是一个OSGi容器。它允许在web服务器运行时无缝地启动、停止和替换web应用程序的组件(某种意义上说是jar文件)。这意味着它允许您在不重新启动服务器的情况下更改应用程序。

Sling可以用非常简单的术语描述为JCR的REST API。您可以使用http请求来管理存储库中的内容

此外,Sling还提供了一种机制,可以以不同的方式呈现内容,供web使用。您可以在Felix容器中使用脚本(例如JSP)和java代码(servlet、POJO等)来处理请求和传递请求

当为特定节点发出请求时,Sling会查找名为
Sling:resourceType
的属性,这是用于呈现脚本的查找键。然后使用节点作为输入来执行appropiate脚本

您可以为渲染器编写不同的类型,然后使用它以不同的方式显示内容

例如,您可以编写两个脚本full.json.jsp和short.json.jsp,然后使用它们以两种不同的方式呈现相同的节点:

/content/app/node.full.json 

Sling基本上匹配请求URL中的令牌以选择适当的脚本

他们有一个非常好的方法来解释请求解析和渲染是如何工作的


它比这要复杂一些,因为一切都是在资源和组件中组织的。你想了解更多信息吗?我也有同样的疑问。我能找到的最好的回应是在官方的Sling页面()


(什么是)Apache Sling,用一百个字来说:

ApacheSling是一个web框架,它使用Java内容存储库(如ApacheJackrabbit)来存储和管理内容

Sling应用程序使用脚本或Java servlet(根据简单的名称约定选择)以RESTful方式处理HTTP请求

嵌入式ApacheFelixOSGi框架和控制台提供了一个动态运行时环境,可以在运行时加载、卸载和重新配置代码和内容包


因此,恢复:

  • Sling是一个web框架-->使用基于JCR API的jackrabbit-->并受JCR API支持
  • 您可以看到ApacheFelix像一个带有管理器的容器
请注意,Sling在Day Software开始时是一个内部项目。这就是为什么有些bundle/library的名称像com.day,但最终它们是同一个名称的两个名称


另外,如果您想了解Jackrabbit和JCR API,可以访问Jackrabbit的官方页面

我对Jackrabbit和Felix有一些了解。但对Sling的陈述完全被我推翻了。你能再给我解释一下关于Sling的事吗?对不起,我个人对Sling知道的不多。我只知道你也可以在网站上找到。顺便说一下,官方名称是Jackrabbit(小写r)。抱歉挑剔:-)谢谢你让我纠正:)。但是,是的,我真的想说一件事。至少他们应该制作一些好的教程,这样可以帮助新生从非常基础的角度学习这些项目。@devsda:对于Apache Sling,请查看他们的“在15分钟内发现Sling”教程:您是否成功地将这三个系统组合在一起?目前,这些项目主要由Adobe维护,以便在CMS产品Adobe Experience Manager(AEM)中使用。Jackrabbit是JCR的参考实现,在Adobe之外有一些采用(参见Modeshape)。Felix是一个OSGi容器,也是一个开放标准。Sling是专门为AEM的前身创建的JCR web框架,在AEM之外几乎没有采用。如果你没有使用AEM,我不知道你为什么会选择这个堆栈。还有更好的选择。为了快速了解如何使用Sling,我喜欢他们的快速教程:“在15分钟内发现Sling”
/content/app/node.short.json.