Import de données dans alfresco par programmation java

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

Import de données dans alfresco par programmation java

Bonjour,

j'utilise le compte de mon collègue pour poster une question car nous travaillons en binôme à l'intégration d'alfresco.
Notre question en ce moment est d'intégrer des données par programmation.
J'utilise java avec lequel je me suis battu pour avoir un semblant de résultat et voila ce que ca donne :
Code :
import java.io.File;
import java.io.FileNotFoundException;
import org.alfresco.repo.importer.ACPImportPackageHandler;
import org.alfresco.repo.importer.ImporterComponent;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.view.ExporterCrawlerParameters;
import org.alfresco.service.cmr.view.ImportPackageHandler;
import org.alfresco.service.cmr.view.Location;




public class Main {

   public static void main(String[] args) throws FileNotFoundException {

      // define which part of the Repository to export
      Location location = new Location(new StoreRef("workspace", "SpacesStore"));
      location.setPath("/");
      ExporterCrawlerParameters parameters = new ExporterCrawlerParameters();
      parameters.setExportFrom(location);

      
      String cheminFichierZip = "C:/Documents and Settings/user/Bureau/fichierEssai.zip";
      File fichierZip = new File(cheminFichierZip);
      
      ImportPackageHandler  handler = new ACPImportPackageHandler (fichierZip,"utf-8");

      // import (note: in this example we're not interested in progress)
      ImporterComponent importer = new ImporterComponent() ;
      

      
      importer.importView(handler,location,null,null);
      }
}

qui me donne :
Exception in thread "main" java.lang.NullPointerException
   at org.alfresco.repo.importer.ImporterComponent.getNodeRef(ImporterComponent.java:248)
   at org.alfresco.repo.importer.ImporterComponent.importView(ImporterComponent.java:227)
   at Main.main(Main.java:34)


et j'ai aussi essayer de passer par :
import java.io.FileNotFoundException;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {


   
   public static void main(String[] args) throws FileNotFoundException {
      

         String result = "";
           try {
   
               ApplicationContext context = new ClassPathXmlApplicationContext("classpath:alfresco/application-context.xml");
   
              Repository repository = (Repository)context.getBean("JCR.Repository");
   
               SimpleCredentials credentials = new SimpleCredentials("admin",  "admin".toCharArray());
               Session session = repository.login(credentials);
   
               Node rootNode = session.getRootNode();
               result = "Root node: path=" + rootNode.getPath() + ", type=" + rootNode.getPrimaryNodeType().getName();
         
           } catch (Exception e) {
               System.out.println("Error: " + e.getMessage());
           }
   
           System.out.println(result);
   
      }
}
Et après 10 secondes il me renvoit :
Error: Error creating bean with name 'avmRemoteService' defined in class path resource [alfresco/remote-services-context.xml]: Invocation of init method failed; nested exception is java.rmi.server.ExportException: Port already in use: 50501; nested exception is:
   java.net.BindException: Address already in use: JVM_Bind

Ce sont des développement commencé à partir d'exemples trouvés sur le wiki ou ailleurs.

Si quelqu'un a une idée pour me débloquer ce serait simpa.
1 Reply
rguinot
Customer

Re: Import de données dans alfresco par programmation java

Si vous essayez uniquement d'importer des ACP, il est inutile de développer du code custom, voir :
http://wiki.alfresco.com/wiki/Export_and_Import#Export_.26_Import_Command_Line_Tools

Avez vous regardé le SDK pour avoir des exemples de code permettant d'interagir avec le repository ?

L'exception "JVM Bind" est très classique et signifie que vous avez une autre JVM qui tourne sur les mêmes ports, sans doute une jvm mal arrếtée de tests précédents.