 
					
				
		
01-22-2018 10:17 AM
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?
01-22-2018 06:15 PM
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.
 
					
				
				
			
		
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.