如果我得到它,Apache Sling将为Jackrabbit JCR存储库充当REST CRUD接口.
由于已经存在RESTful协议(其AtomPub实现中的CMIS)以与JCR存储库一起工作,除了视图/模板层之外,使用Apache Sling与CMIS(即通过Apache Chemistry)有什么优势吗?
使用CMIS不支持的JCR(Sling)可以做些什么吗?
Google和Box等云存储服务为所有文件提供了可共享的URL端点.像http://drive.google.com/my-object-id这样的东西.
在大多数服务器实现中是否有默认的cmis值来获取这种URL?如果不是Alfresco的这个房产的名称是什么?
我正在尝试使用 Apache Chemistry 连接到 CMIS 服务器,当它使用 AtomPumb url 配置时,它可以正常工作,但是当我切换到 webservices 并尝试创建会话时,它会引发此错误:
java.lang.NoSuchMethodError: com.sun.xml.internal.ws.api.message.Message.getHeaders()
Lcom/sun/xml/internal/ws/api/message/HeaderList;
Run Code Online (Sandbox Code Playgroud)
这些是我的 POM 中的依赖项:
<!-- * * * * * * * * * * * * * * * * * * * * -->
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-api</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-impl</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-commons-impl</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-bindings</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-client-api</artifactId>
<version>0.13.0</version>
</dependency>
<dependency>
<groupId>org.apache.chemistry.opencmis</groupId>
<artifactId>chemistry-opencmis-workbench</artifactId>
<version>0.13.0</version>
</dependency>
<!-- * * * * * * * * * * …
Run Code Online (Sandbox Code Playgroud) 我刚注意到Apache OpenCMIS上的这个项目:
https://svn.apache.org/repos/asf/chemistry/opencmis/trunk/chemistry-opencmis-bridge
没有描述,没有文档,阅读代码并没有提供很多关于它应该做什么的提示.
Apache OpenCMIS有时会默默地发布优秀的软件,几乎没有通信,所以我们可能会错过另一个很棒的软件.
Google搜索"OpenCMIS Bridge"仅返回源代码和裸下载页面.
最近我开始使用Apache CMIS并阅读官方文档和示例.我没有注意到有关分页查询结果的任何信息.
有一个示例显示如何列出文件夹项,使用operationContext设置maxItemsPerPage,但似乎可以在getChilder方法中使用operationContext:
int maxItemsPerPage = 5;
int skipCount = 10;
CmisObject object = session.getObject(session.createObjectId(folderId));
Folder folder = (Folder) object;
OperationContext operationContext = session.createOperationContext();
operationContext.setMaxItemsPerPage(maxItemsPerPage);
ItemIterable<CmisObject> children = folder.getChildren(operationContext);
ItemIterable<CmisObject> page = children.skipTo(skipCount).getPage();
Run Code Online (Sandbox Code Playgroud)
在列出u文件夹时这是可以的.但我的情况是从自定义搜索查询中获取结果.基本方法是:
String myType = "my:documentType";
ObjectType type = session.getTypeDefinition(myType);
PropertyDefinition<?> objectIdPropDef = type.getPropertyDefinitions().get(PropertyIds.OBJECT_ID);
String objectIdQueryName = objectIdPropDef.getQueryName();
String queryString = "SELECT " + objectIdQueryName + " FROM " + type.getQueryName();
ItemIterable<QueryResult> results = session.query(queryString, false);
for (QueryResult qResult : results) {
String objectId = qResult.getPropertyValueByQueryName(objectIdQueryName);
Document doc …
Run Code Online (Sandbox Code Playgroud) 我正在使用Apache化学来编写和读取Java servlet中的内容管理系统中的数据.我目前正在为CMS中的每个登录用户创建一个单独的文件夹.当用户登录时,我必须检查并获取用户文件夹的引用,以便我可以在会话中使用相同的文件.首次创建文件夹时,我可以使用createFolder调用获取用户的文件夹:
Folder userFolder = root.createFolder(newFolderProps);
Run Code Online (Sandbox Code Playgroud)
但是,如果该文件夹已经存在,我可以获取该文件夹的唯一方法是迭代所有子项.这可能效率很低.我想知道是否有任何方法可以将文件夹名称指定为查询参数,这样我就可以直接获取users文件夹而无需遍历所有子文件夹.
我与Alfresco和OpenCMIS合作,想要获取文件夹和文档.
查询:
SELECT D.cmis:objectId, F.cmis:objectId
FROM cmis:folder AS F JOIN cmis:document AS D
WHERE IN_FOLDER('"+ folderId +"')
AND cmis:name like '%name%'"
Run Code Online (Sandbox Code Playgroud)
但它不起作用.请帮我写有效的查询.