AnsweredAssumed Answered

problema creacion de documentos con Web services y busquedas

Question asked by magno_6045 on Jul 23, 2010
Latest reply on Jul 26, 2010 by magno_6045
Hola,
tengo un problema con el que llevo varios días y que no encuentro solución…
Estoy desarrollando unos portlets para liferay que acceden a alfresco. Bien, tengo uno de crear contenidos, en el que creo archivos a traves de la api de los web services. este es el codigo que utilizo:
     Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore"); 
                 ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home", Constants.ASSOC_CONTAINS, null);
                 companyHomeParent.setChildName("cm:" + name);
                  NamedValue[] contentProps = new NamedValue[1];  
                 contentProps[0] = Utils.createNamedValue(Constants.PROP_NAME, name);  
                 CMLCreate create = new CMLCreate("1", companyHomeParent, null, null, null, Constants.TYPE_CONTENT, contentProps);
                 NamedValue[] titledProps = new NamedValue[2];
                 titledProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, titulo);
                 titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, descripción);
                 CMLAddAspect addAspect = new CMLAddAspect(Constants.ASPECT_TITLED, titledProps, null, "1");
                 CML cml = new CML();
                 cml.setCreate(new CMLCreate[] {create});
                 cml.setAddAspect(new CMLAddAspect[] {addAspect});
                 UpdateResult[] result = WebServiceFactory.getRepositoryService().update(cml);
                 Reference content = result[0].getDestination();
                 ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
                 String text = textoHTML;
                 // hay que darle el formato segun el tipo!!!
                 ContentFormat contentFormat=null;
              
                 if (tipo.equalsIgnoreCase("html")){
                    contentFormat = new ContentFormat("application/msword", "UTF-8");
                 }
                 if (tipo.equalsIgnoreCase("txt")){
                    contentFormat = new ContentFormat("plain/text", "UTF-8");
                 }
                 if (tipo.equalsIgnoreCase("pdf")){
                    contentFormat = new ContentFormat("application/pdf", "UTF-8");
                 }          
               
                 contentService.write(content, Constants.PROP_CONTENT, text.getBytes(), contentFormat); 

el caso es que me crea el documento que sea bien. voy al alfresco lo miro y todo correcto, abre bien, se lee bien, puedo editarlo, borrarlo, etc…
Total, que tengo otro portlet de busqueda que al intentar buscar por nombre o texto, solo me encuentra los documentos que yo haya creado desde alfresco, no los que yo he creado "manualmente" desde mi otro portlet. Es decir, que algo me tiene que faltar a la hora de crear los documentos propios que haga que luego no aparezcan en las busquedas…no tengo mucha idea de lucene ni nada de esto, por lo que he leido se supoe que indexa el solito, pero no estoy segura de que me lo este haciendo y no se si tendria que darle alguna opcion o algo, bien a la hora de crear el documento, bien a la hora de buscarlo…
este es el codigo de la busqueda:
          String luceneQuery ="@cm\\:name:"+name+"" ;
             Query query = new Query("lucene", luceneQuery);     
             Store storeRef = new Store("workspace", "SpacesStore");
Agradeceria cualquier indicación porque llevo varios dias con este embrollo y no doy con la solución…
Muchas gracias!!

Outcomes