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?
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.
Discussions about Alfresco Content Services and Alfresco Process Services in Portuguese
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.