Hello,
I am having a problem logging into a Documentum repository via DotCMIS. I
have code that successfully logs into other repositories but is failing
against Documentum. I can login successfully to the same Documentum
system using CMIS Workbench Version: 0.8.0-SNAPSHOT / Revision: ? / Build:
2012-09-03T21:14:47+0200.
The same credentials on my DotCMIS application fail. I have attempted to
login by choosing the first repository and by specifying a repository.
Both methods fail. I am using DotCMIS.dll 0.6.0.0.
When I attempt to login to the first repository,
factory.GetRepositories(loginParameters); returns a list of 0 items.
When I attempt to login by specifying the repository, I receive an
exception that the repository does not exist. This same repository is the
one displayed by CMIS workbench:
Here is the exception for the specified repository:
DotCMIS.Exceptions.CmisObjectNotFoundException: Repository not found!
at DotCMIS.Binding.AtomPub.RepositoryService.GetRepositoryInfo(String
repositoryId, IExtensionsData extension)
at
DotCMIS.Binding.Impl.BindingRepositoryService.GetRepositoryInfo(String
repositoryId, IExtensionsData extension)
at DotCMIS.Client.Impl.Session.Connect()
at DotCMIS.Client.Impl.SessionFactory.CreateSession(IDictionary`2
parameters, IObjectFactory objectFactory, AbstractAuthenticationProvider
authenticationProvider, ICache cache)
Here is the snip of code that performs the login. I split apart the
GetRepositories call and login call to multiple statements so I could
confirm that it is returning an empty list.
ISession myCMISSession = null;
loginParameters = new Dictionary<string, string>();
loginParameters[SessionParameter.BindingType] = BindingType.AtomPub;
loginParameters[SessionParameter.AtomPubUrl] = cmisAtomPubURL; //
cmisAtomPubURL; is a string
loginParameters[SessionParameter.User] = cmisUserID; // cmisUserID; is a
string
loginParameters[SessionParameter.Password] = cmisPassword; //
cmisPassword; is a string
SessionFactory factory = SessionFactory.NewInstance();
if ((cmisRepositoryID != null) && (cmisRepositoryID.Trim().Length > 0))
{
loginParameters[SessionParameter.RepositoryId] = cmisRepositoryID; //
Login using a specific repository ID
myCMISSession = factory.CreateSession(loginParameters);
}
else
{
IList<IRepository> repositoryList =
factory.GetRepositories(loginParameters);
if (repositoryList.Count != 0)
{
myCMISSession = repositoryList[0].CreateSession(); // Login to the
first repository
}
}
When I click on "Load Repositories" using CMIS Workbench, it does list the
single repository and the login to that repository is successful. I do
not understand why it is getting a list of repositories but my code does
not.
Can anyone offer any advice as to why I cannot login using DotCMIS when
the same login credentials work with CMIS Workbench?
Thanks,
Robert