【问题标题】:Setting up alfresco open-cmis-extension设置 alfresco open-cmis-extension
【发布时间】:2012-08-10 12:10:48
【问题描述】:

我正在开发一个 Liferay portlet,它通过 Cmis 和 wsdl 绑定连接到 Alfresco Repository,(BINDING_TYPE = BindingType.WEBSERVICES)

到目前为止,我已经实现了大部分必需的功能(浏览、文件夹/文档管理、文档版本、权限等)。现在是时候实现一些与方面相关的功能了,所以是时候使用 alfresco open-cmis-extensions 了,这似乎是一个简单的过程。

我必须做的一件事是将会话工厂更改为“AlfrescoObjectFactoryImpl”

parameter.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");

在那之后,我仍然成功获得了 Session,但是当我尝试获取任何存储库文件夹时,我在转换文件夹属性时收到 InvalidArgumentException


我的调试日志:

! 12:51:11,542 调试 CmisWebServicesSpi:58 - 正在初始化 Web 服务 SPI... 12:51:11,692 调试 AbstractPortProvider:244 - 初始化 Web 服务 org.apache.chemistry.opencmis.binding.webservices.ObjectService... 12:51:16,426 DEBUG PortProvider:65 - 创建 {http://docs.oasis-open.org/ns/cmis/ws/200908/}ObjectService 的 Web 服务端口对象... 12:51:36,103 错误 [render_portlet_jsp:154] java.lang.IllegalArgumentException:未知方面属性:http://docs.oasis-open.org/ns/cmis/core/200908/ 在 org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl.convertProperties(AlfrescoObjectFactoryImpl.java:265) 在 org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.initialize(AbstractCmisObject.java:108) 在 org.alfresco.cmis.client.impl.AlfrescoFolderImpl.initialize(AlfrescoFolderImpl.java:46) 在 org.apache.chemistry.opencmis.client.runtime.FolderImpl.(FolderImpl.java:69) 在 org.alfresco.cmis.client.impl.AlfrescoFolderImpl.(AlfrescoFolderImpl.java:39) .........................


我正在使用: Liferay 6.1 和 alfresco-opencmis-extension-0.3.jar

并且存储库是 alfresco Community - v4.0.0 (4003)


到目前为止,我最好的猜测是某些属性定义没有正确设置,因为命名空间是作为方面属性传递的

对我做错了什么有什么想法吗?

请注意,我还没有尝试做任何与方面相关的事情。通过注释掉 'OBJECT_FACTORY_CLASS' 参数,一切正常!

【问题讨论】:

  • 如果您添加获取 AlfrescoFolderImpl 对象的代码会很有帮助。
  • 您是否尝试使用 AtomPub 绑定,只是为了检查它不是 ws 问题? (另外,AtomPub 绑定通常要快一点!)
  • @jeff Potts:我没有覆盖任何关于 Alfresco Impl 的内容。我刚刚按照 open-cmis-extension 教程将 OBJECT_FACTORY_CLASS 添加到会话参数中。
  • @Gagravarr 无论如何我都必须使用 WSDL 绑定(这是一项要求),但到目前为止,相同的绑定工作得很好。你认为它可能不适用于 Alfresco 扩展吗?

标签: alfresco liferay-6 cmis


【解决方案1】:

按照Gagravarr的思路,尝试了ATOMPUB绑定而不是Web Services,终于连接成功了。

事实证明,AlfrescoAspectsUtils.findAlfrescoExtensions 获取的 alfrescoExtensions 包含具有不正确 propertyDefinitionId 的属性,这导致 AlfrescoAspectsUtils.findAspect 崩溃。

可能没有正确设置该存储库的 Web 服务绑定

经过一些调试,属性值都是一样的

WSDL: -propertyDefinitionId = (http)://docs.oasis-open.org/ns/cmis/core/200908/

原子: propertyDefinitionId = 应用程序:图标

谢谢加格拉瓦!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多