加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用DotCMIS for Alfresco时出现错误“属性’cm:标题’不

发布时间:2020-12-15 20:59:55 所属栏目:百科 来源:网络整理
导读:我通过dotCMIS与使用Visual Studio 2010 C#via的本地Alfresco-Server建立了会话 Dictionarystring,string parameters = new Dictionarystring,string(); parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub; parameters[DotCMIS.Sessi
我通过dotCMIS与使用Visual Studio 2010 C#via的本地Alfresco-Server建立了会话

Dictionary<string,string> parameters = new Dictionary<string,string>();    
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;      
parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://127.0.0.1:8888/alfresco/api/-default-/public/cmis/versions/1.1/atom";           
parameters[DotCMIS.SessionParameter.User] = "admin";
parameters[DotCMIS.SessionParameter.Password] = "admin";           
SessionFactory factory = SessionFactory.NewInstance();    
IList<IRepository> repos = factory.GetRepositories(parameters);
ISession session = repos.ElementAt(0).CreateSession();

但是当我试图获得一个根文件夹时

IFolder root = session.GetRootFolder();

或运行查询

string queryGetDoc = "SELECT * FROM cmis:document WHERE cmis:name='Bug101.png'";
IItemEnumerable<IQueryResult> docResults = session.Query(queryGetDoc,false);
IQueryResult docHit = docResults.FirstOrDefault();
string docId = docHit["cmis:objectId"].FirstValue.ToString();

IDocument document = session.GetObject(docId) as IDocument;

IList<IProperty> listOfProperties = document.Properties;

foreach (IProperty p in listOfProperties)
{
    Console.WriteLine(p.QueryName);
}

我收到一条错误消息:

DotCMIS.Exceptions.CmisRuntimeException: Property ‘cm:title’ doesn’t exist!
bei DotCMIS.Client.Impl.ObjectFactory.ConvertProperty(IObjectType objectType,IPropertyData pd)
bei DotCMIS.Client.Impl.ObjectFactory.ConvertProperties(IObjectType objectType,IProperties properties)
bei DotCMIS.Client.Impl.AbstractCmisObject.Initialize(ISession session,IObjectType objectType,IObjectData objectData,IOperationContext context)
bei DotCMIS.Client.Impl.Folder..ctor(ISession session,IOperationContext context)
bei DotCMIS.Client.Impl.ObjectFactory.ConvertObject(IObjectData objectData,IOperationContext context)
bei DotCMIS.Client.Impl.Session.GetObject(String objectId,IOperationContext context)
bei DotCMIS.Client.Impl.Session.GetObject(IObjectId objectId,IOperationContext context)
bei DotCMIS.Client.Impl.Session.GetRootFolder(IOperationContext context)
bei DotCMIS.Client.Impl.Session.GetRootFolder()
bei ConsoleApplication3.Program.ConnectingUsingAtomPub_CreateFolder()

我可以猜测,我在这里缺少一些基础知识,但我在网上搜索,只找到了https://github.com/wk-j/alfresco-cmis/issues/1.

但是我不知道如何应用它,或者它是否是正确的.

解决方法

正如Gagravarr建议的那样简单:将连接端点更改为CMIS 1.0,查询工作正常.如果我找到一个使用PortCMIS和CMIS 1.1的propper解决方案,我稍后会发布.

parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://127.0.0.1:8888/alfresco/api/-default-/public/cmis/versions/1.0/atom";

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读