AnsweredAssumed Answered

WebService Problème Path Lucene

Question asked by john31 on Nov 4, 2008
Latest reply on Dec 11, 2008 by michel
Bonjour,

Je développe actuellement un appel de WebService via l'API fournie pour stocker et récupérer des fichiers dans Alfresco.

J'ai actuellement un problème avec la syntaxe Lucene pour spéficier un chemin spécifique. Je m'explique, avant de stocker le fichier, je dois vérifier si un fichier portant le même nom est déjà présent, si c'est le cas supprimer l'ancien fichier et le remplacer. Pour cela j'utilise deux paramètres : le path et le nom du fichier. J'utilise la méthode Query du Repository pour vérifier si le fichier existe déjà :


public String uploadContent(String path, String fileName){
      String contentUUID = new String();
      try{
      //Start the session
      AuthenticationUtils.startSession("admin", "admin");
      Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
               ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home", Constants.ASSOC_CONTAINS, null);
               RepositoryServiceSoapBindingStub repositoryService =WebServiceFactory.getRepositoryService();
               ContentServiceSoapBindingStub contentService =WebServiceFactory.getContentService();

               String queryLucene = "+PATH:\""+companyHomeParent.getPath()+"//*\" +@\\{http\\://www.alfresco.org/model/content/1.0\\}name:\"" + fileName + "\"";
      query = new Query(Constants.QUERY_LANG_LUCENE, queryLucene);
      ResultSet rs = repositoryService.query(storeRef, query, false).getResultSet();
      
      if(rs.getTotalRowCount() > 0){
               // Suppression du fichier
               }
               // Upload du fichier
               (…)

Ce code fonctionne très bien si l'arborescence utilisée est app:company_home. Par contre, dès que j'essaye de faire la même manipulation dans un sous dossier, par exemple : company_home/upload, l'envoie du fichier fonctionne très bien si le fichier n'est pas déjà présent, mais pas la requête en Lucene :
ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home/cm:upload", Constants.ASSOC_CONTAINS, null);
String queryLucene = "+PATH:\""+companyHomeParent.getPath()+"//*\" +@\\{http\\://www.alfresco.org/model/content/1.0\\}name:\"" + fileName + "\"";

L'upload la première fois fonctionne très bien, mais la méthode repositoryService.query() ne retourne aucun résultat.
A noter que j'ai essayé de faire un rebuild FULL de l'index sans succès.

Avez vous une idée ?

Merci d'avance =)

Configuration :
VM Ware Windows Server 2003 SP2
Alfresco Labs 3b Full Setup
Tomcat / MySQL

Outcomes