设置alfresco open-cmis-extension

时间:2012-08-10 12:10:49

标签: alfresco liferay-6 cmis

我正在使用Liferay portlet,它通过Cmis和wsdl绑定连接到Alfresco存储库,(BINDING_TYPE = BindingType.WEBSERVICES)

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

我必须做的一件事就是将Session Factory更改为'AlfrescoObjectFactoryImpl'

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

之后,Ι仍然成功获得会话,但是一旦我尝试获取任何存储库文件夹,我在转换文件夹属性时会收到InvalidArgumentException


我的调试日志:

  

! 12:51:11,542 DEBUG CmisWebServicesSpi:58 - 初始化Web服务SPI ...   12:51:11,692 DEBUG 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/}的Web服务端口对象ObjectService ...   12:51:36,103 ERROR [render_portlet_jsp:154] java.lang.IllegalArgumentException:未知的aspect属性:http://docs.oasis-open.org/ns/cmis/core/200908/       at org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl.convertProperties(AlfrescoObjectFactoryImpl.java:265)       at org.apache.chemistry.opencmis.client.runtime.AbstractCmisObject.initialize(AbstractCmisObject.java:108)       at 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

并且存储库是露天社区 - v4.0.0(4003)


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

对我做错了什么的想法?

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

1 个答案:

答案 0 :(得分:1)

按照Gagravarr的想法,我尝试了ATOMPUB绑定而不是Web服务,最后我成功连接。

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

可能没有正确设置该存储库的Webservice绑定

经过一些调试后,相同的属性值为

  

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

     

ATOM:   propertyDefinitionId = app:icon

谢谢Gagravarr!