Criar sessão cmis

cancel
Showing results for 
Search instead for 
Did you mean: 
patricia_lopes
Member II

Criar sessão cmis

Tentei criar um conector cmis no bonita soft versão 5.9.1 e quando tento criar um sessão devolve o seguinte erro.

java.lang.NoClassDefFoundError: org/apache/chemistry/opencmis/client/runtime/SessionFactoryImpl
java.lang.ClassNotFoundException: org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl in classloader MyExtensionsClassLoader

No conector tenho o seguinte código

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.apache.chemistry.opencmis.client.api.Repository;
import org.apache.chemistry.opencmis.client.api.Session;
import org.apache.chemistry.opencmis.client.api.SessionFactory;
import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.apache.chemistry.opencmis.commons.enums.BindingType;
import org.ow2.bonita.connector.core.ConnectorError;
import org.ow2.bonita.connector.core.ProcessConnector;


public class CMISTESTE extends ProcessConnector {

// DO NOT REMOVE NOR RENAME THIS FIELD
public String password;
// DO NOT REMOVE NOR RENAME THIS FIELD
public String username;
public String resultado;

private static Map<String, Session> connections = new ConcurrentHashMap<String, Session>();


@Override
protected void executeConnector() throws Exception {
// TODO Auto-generated method stub
getSession( username, password);
}

public String getSession(String username, String password) {

System.out.println("Metodo CreateSession");

// Ver se existe uma sessão existente para o utilizador
Session session = connections.get(username);

// Criar uma nova sessão no Alfresco
if (session == null) {
System.out.println("Not connected, creating new connection to" + " Alfresco with the connection id (" + username
+ ")");

// Implementação da fabrica padrão
SessionFactory sessionFactory = SessionFactoryImpl.newInstance();
Map<String, String> parameters = new HashMap<String, String>();

// Parametros para a conecção
parameters.put(SessionParameter.USER, username);
parameters.put(SessionParameter.PASSWORD, password);
parameters.put(SessionParameter.ATOMPUB_URL,"http://localhost:8089/alfresco/cmisatom");
parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
//parameters.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");

// Recebe a lista de repositorios fornecidos pelo endpoint
List<Repository> repositories = sessionFactory.getRepositories(parameters);

// Como só é devolvido um repositorio, irá estar na posição 0
Repository alfrescoRepository = null;
alfrescoRepository = repositories.get(0);

// Criar conecção com o repositorio
session = alfrescoRepository.createSession();

// Salvar coneção
connections.put(username, session);

} else {
System.out.println("Already connected to Alfresco with the " + "connection id (" + username + ")");
}
resultado="OK";
return resultado;
}

@Override
protected List<ConnectorError> validateValues() {
// TODO Auto-generated method stub
return null;
}

/**
* Setter for input argument 'password'
* DO NOT REMOVE NOR RENAME THIS SETTER, unless you also change the related entry in the XML descriptor file
*/
public void setPassword(java.lang.String password) {
this.password = password;
}

/**
* Setter for input argument 'username'
* DO NOT REMOVE NOR RENAME THIS SETTER, unless you also change the related entry in the XML descriptor file
*/
public void setUsername(java.lang.String username) {
this.username = username;
}

/**
* Getter for output argument 'resultado'
* DO NOT REMOVE NOR RENAME THIS GETTER, unless you also change the related entry in the XML descriptor file
*/
public java.lang.String getResultado() {
// TODO Add return value for the output here
return this.resultado;
}

}

Como devo corrigir?

1 Reply
douglascrp
Advanced II

Re: Criar sessão cmis

Boa noite.

Eu diria que essa sua pergunta não tem muita relação com o Alfresco, mesmo que você esteja tentando se conectar nele.

Se esse seu código é executado no Bonita, então o problema está lá, e não no Alfresco.

Esse é um erro bem comum no Java, e quer dizer que a JVM onde o projeto está rodando (imagino que você esteja usando o Tomcat) não tem o jar da biblioteca disponível no classpath (normalmente <tomcat>/lib)

Verifique se você baixou a biblioteca do CMIS e se colocou em um local onde a JVM possa acessá-la.