I am trying to get all the type definitions (specifically aspects, so they are secondary types) from the repository.I am connecting to a locally started bootstrap jar projects that starts up alfresco on localhost:8080.
So far connecting to this alfresco has been working fine, and I have been able to create documents, folders etc on my localhost:8080 alfresco instance.
My code does not seem to work as I get the below error. Please can you let me know what the issue could be and how do I get all the secondary type definitions (alfersco aspects) from the repository?
Exception in thread "main" org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException: Type '-default-' is unknown!
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.convertStatusCode(AbstractBrowserBindingService.java:296)
at org.apache.chemistry.opencmis.client.bindings.spi.browser.AbstractBrowserBindingService.read(AbstractBrowserBindingService.java:410)
String user = "admin";
String pwd = "admin";
String serviceUrl = "http://localhost:8080/alfresco/api/-default-/public/cmis/versions/1.1/browser";
Session session = SessionManager.getInstance().createSession(new SessionContext(user, pwd, serviceUrl));
SearchService.searchDocuments(session, null);
public static List<Document> searchDocuments(Session session, SearchTerms searchTerms) {
// ObjectType typeDefinition = session.getTypeDefinition(session.getRepositoryInfo().getId());
String repoId = session.getRepositoryInfo().getId();
ObjectType typeDefinition1 = session.getTypeDefinition(repoId);
return null;
}
public Session createSession(SessionContext context){
try {
String user = context.getUser();
SessionFactory factory = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<>();
parameters.put(SessionParameter.USER, context.getUser());
parameters.put(SessionParameter.PASSWORD, context.getPassword());
parameters.put(SessionParameter.BROWSER_URL, context.getServiceUrl());
parameters.put(SessionParameter.BINDING_TYPE, BindingType.BROWSER.value());
List<Repository> repositories = factory.getRepositories(parameters);
Session session = repositories.get(0).createSession();
session.getDefaultContext().setCacheEnabled(false);
sessions.put(user, session);
return session;
}catch(CmisConnectionException e) {
// The server is unreachable
}
catch(CmisRuntimeException e) {
// The user/password have probably been rejected by the server.
}
return null;
}
You cannot ask for every type / aspect definition in Alfresco by using CMIS API.
The method you are using is expecting a CMIS Type ID, like in this sample: Working with Types - Apache Chemistry Samples
You should use Alfresco REST API to recover a list of deployed types and aspects.