GetRepositories(parameters) throws CmisRuntimeException

◇◆丶佛笑我妖孽 提交于 2019-12-25 05:32:07

问题


Hi Everyone,

I'm currently trying to Connect to Alfresco (DMS), using DotCMIS/C#, so that I can create/locate/retrieve/archive files from it through my program.

Reference: https://chemistry.apache.org/dotnet/getting-started-with-dotcmis.html

Note: I tried different "AtomPubUrl" to test which URL might work.

[CMIS v1.0]
For Alfresco Version 3.x: http://[host]:[port]/alfresco/service/cmis
For Alfresco 4.0.x and Alfresco 4.1.x : http://[host]:[port]/alfresco/cmisatom
For Alfresco 4.2: http://[host]:[port]/alfresco/api/-default-/public/cmis/versions/1.0/atom

[CMIS v1.1]
For Alfresco 4.2: http://[host]:[port]/alfresco/api/-default-/public/cmis/versions/1.1/atom

Here's my code:

Dictionary<string, string> parameters = new Dictionary<string, string>();
parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub;

//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/service/cmis";
//Throws: "Not Found

//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/cmisatom";
//Throws: "Unauthorized

//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.0/atom";
//Throws: "Unauthorized

//parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom";
//Throws: "Unauthorized

parameters[DotCMIS.SessionParameter.User] = "admin ";
parameters[DotCMIS.SessionParameter.Password] = "admin";
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.GetRepositories(parameters)[0].CreateSession();

Before, I encountered an exception CmisRuntimeException - "SendFailure", but now it changes into "Not Found"/"Unauthorized".

Can somebody explain me why am I encountering these errors? or What is wrong with my code?

Thanks in advance!

Best Regards!

Have a nice day.


回答1:


Promoting a comment to an answer

You need to use the correct CMIS Service URL for the version of Alfresco you are running. Trying to use the 3.x URL on a 5.x server isn't likely to work. You can find the CMIS service URL for a given version in that version's documentation, or you can get an overview of all the URLs from the Alfresco Wiki

Secondly, you'll need to be authenticating to the CMIS server. You don't have to use admin, but you do need to use valid credentials

Assuming you have a 4.2 server, with an administrator account called admin and a password of admin, you would want something like

parameters[DotCMIS.SessionParameter.AtomPubUrl] = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/atom";
parameters[DotCMIS.SessionParameter.User] = "admin ";
parameters[DotCMIS.SessionParameter.Password] = "admin";
SessionFactory factory = SessionFactory.NewInstance();
ISession session = factory.GetRepositories(parameters)[0].CreateSession();


来源:https://stackoverflow.com/questions/29382247/getrepositoriesparameters-throws-cmisruntimeexception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!