我已经学习了java spring hibernate MVC 3个月了,并且对此非常了解.但我还不明白JCR的含义.
我的意思是,例如在我的简单网站中,在MVC中,可以在JCR中完成哪些部分
可以请任何人解释有关JCR工作空间的JCR 2.0规范吗?
我知道会话总是绑定到一个持久工作空间,尽管单个持久工作空间可能绑定到多个会话.
这可能与版本控制和交易有关,但我不知道为什么.
一些观察:
工作区似乎是关于表示相同内容(相同UUID)的节点,在:
并且不应该用于ACL.
同样在JackRabbit中,每个工作区都有其持久性管理器.而ModeShape有一个源连接器 - 独立于工作空间.
我尝试使用带有Oracle DB的Jackrabbit作为持久层.因此我在Tomcat 6服务器(本地)上安装了Jackrabbit.数据库在虚拟机中运行.从Jackrabbits项目页面安装war文件后,我使用了默认的安装机制.之后,我更改了配置(repository.xml)并删除了所有文件夹(工作区和存储库).所以我的Jackrabbit文件夹只包含repositry.xml和bootstrap.properties.
这是我的reporitory.xml
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<param name="user" value="JCR" />
<param name="password" value="test"/>
<param name="schema" value="oracle"/>
</FileSystem>
<DataStore class="org.apache.jackrabbit.core.data.db.DbDataStore">
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<param name="user" value="JCR" />
<param name="password" value="test"/>
</DataStore>
<Security appName="Jackrabbit">
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
</SecurityManager>
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
</AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
<param name="anonymousId" value="anonymous"/>
<param name="adminId" value="admin"/>
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default"/>
<Workspace name="${wsp.name}">
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<param name="user" value="JCR" />
<param name="password" value="test"/>
<param …Run Code Online (Sandbox Code Playgroud) 我是骆驼世界的新手,我在与jcr组件建立连接方面遇到了问题.看看我的测试代码:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jcr.JcrConstants;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
public class ObjectToJCRRouteTest extends CamelTestSupport {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:a")
.setProperty(JcrConstants.JCR_NODE_NAME,
constant("node"))
.setProperty("my.contents.property", body())
.to("jcr://admin:admin@localhost:8080/home/test");
}
};
}
@Test
public void putJCRNode() throws Exception {
template.sendBodyAndHeader("direct:a", null, null, null);
Thread.sleep(1000);
}
}
Run Code Online (Sandbox Code Playgroud)
我试过了jcr:// admin:admin @ localhost/home/test","jcr:// admin:admin @ localhost:8080/home/test","jcr:// admin:admin @ localhost:8080/repository /家/测试"
我使用rmi使用存储库资源管理器(http://www.subshell.com/en/toromiro/index.html)测试了jackrabbit 并且连接成功了
在任何帮助下提前感谢!
我的jackrabit服务器是:
jmartinez @ jmartinez:〜/ software/jackrabbit $ java -jar …
如果我想在页面A中设置可编辑的cq5组件,但在页面B中不可编辑,是否可行.
例如:在页面A,我有C组件,我们允许作者打开对话框并编辑组件.但是我们不允许作者打开对话框来编辑页面B上的组件C.我尝试研究cq:EditConfig 链接,但这还不足以解决我的问题.
我正在研究一个名为"tabbedcarousel"的轮播组件,我需要遍历它的子节点来访问图像属性.见下图:

那个"tabbedimagecarouselunselectedimage" - >"fileReference"是我需要得到的.
说我目前在"tabbedcarousel.jsp"上工作,我可以访问我的currentNode,所以我假设得到深子img属性的方式是这样的:
<%
NodeIterator tabbedCarouselChildNodes = currentNode.getNodes();
while(tabbedCarouselChildNodes.hasNext()){
Node parNode = tabbedCarouselChildNodes.nextNode();
NodeIterator parChildNodes = parNode.getNodes();
while(parChildNodes.hasNext()){
Node tabbedCarouselItemNode = parChildNodes.nextNode();
NodeIterator tabbedCarouselItemChildNodes = tabbedCarouselItemNode.getNodes();
while(tabbedCarouselItemChildNodes.hasNext()){
Node tabImgNode = tabbedCarouselItemChildNodes.nextNode();
%>
test here s the img property : <%= tabImgNode.getProperties("fileReference").toString()%> !!!
<%
}
}
%>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.希望有人可以给我一些建议.谢谢
我注意到,当我为下拉列表设置defaultValue时,在我第一次将组件添加到页面时,在下拉列表中正确选择它时,它不会将defaultValue写入相应的JCR,直到我编辑组件并保存它.即使我只是打开相应的对话框并单击"确定",我的组件也会按预期工作,因为这些值已添加到JCR中.
我确信我在这里缺少一个重要的部分,是否有人知道为了使组件正确呈现所需的defaultValues如何在首次添加到页面时添加到JCR中?
在对JCR或RDBMS进行了一些研究并阅读了其他文章之后,我仍然不确定是否将JCR over JPA用于文档管理系统,该系统必须处理不同的文档类型,非常大的文件以及许多文档的并发访问用户。
我考虑JCR的主要理由是因为文档对我来说看起来像内容,并且该规范已经解决了它所带来的一些问题-大多数我对存储和版本控制感兴趣。另外,我想将文档内容封装在JCR实现中,并将JPA用于其他所有特定于应用程序的内容。
也许有人可以帮我解决剩余的问题:
更新:尽管已经详细回答了这个问题,但从更实际的角度来看,可能有人会对它的使用有更严格的了解。我个人越来越关注以下与技术无关的问题:
如何将图像存储到 jackrabbit 并将这些图像传送到 HTML 页面?前任。如果用户将从一个 HTML 页面上传多张图像,那么他应该能够在需要时在下一个 html 页面或任何其他页面中看到所有这些图像
软件包安装过程中出现下一个错误:
25.09.2018 14:19:29.154 *ERROR* [qtp2146607925-109] org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage Error during install.
javax.jcr.RepositoryException: Inaccessible value
at org.apache.jackrabbit.oak.plugins.value.ErrorValue.createException(ErrorValue.java:94)
...
at org.apache.jackrabbit.vault.fs.impl.io.FileArtifactHandler.importNtResource(FileArtifactHandler.java:359)
... 58 common frames omitted
Caused by: org.apache.jackrabbit.core.data.DataStoreException: Could not add record
at org.apache.jackrabbit.core.data.FileDataStore.addRecord(FileDataStore.java:230)
at org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.addRecord(DataStoreBlobStore.java:538)
at org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.writeStream(DataStoreBlobStore.java:637)
at org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore.writeBlob(DataStoreBlobStore.java:224)
... 70 common frames omitted
Caused by: java.io.IOException: Can not rename /opt/aem/data-store/tmp3776489360147109357.tmp to /opt/aem/data-store/b6/ea/7d/b6ea7d9744c3fe943e9166246f559558278b287cc532cef6d97a9ad4036bdb5c (media read only?)
at org.apache.jackrabbit.core.data.FileDataStore.addRecord(FileDataStore.java:205)
... 73 common frames omitted
Run Code Online (Sandbox Code Playgroud)
由于异常而无法安装该软件包。Adobe AEM 6.3
jcr ×10
jackrabbit ×6
aem ×4
java ×4
sling ×2
apache-camel ×1
components ×1
dms ×1
jpa ×1
jsp ×1
modeshape ×1
oracle ×1
oracle11g ×1
spring ×1
workspace ×1