Archivo de la categoría: desarrollo

[ERROR]: The amp will overwrite an existing file in the war

Buenas tardes.

Os dejo aquí este tip por si el día de mañana os ocurre para que no os volváis loc@s :-P

Un poco de historia…

Intentando instalar mis amps (carpetas amps/ y amps_share/) con el script apply_amps.sh en uno de mis módulos me daba el siguiente error y no lo instalaba:

06280001 An error was encountered during deployment of the AMP into the WAR: 06280000 ERROR: The amp will overwrite an existing file in the war ‘/themes/sampleTheme/images/alfresco-imagelib.png’. Execution halted. By specifying -force , you can force installation of AMP regardless of the current war state.

El problema es que, si utilizamos el -force como se indica en ese parrafo obligamos a alfresco a sobre escribir archivos que ya tuviera desplegados previamente. Pero más allá de eso: ¿Por qué Alfresco tiene una versión previa de mi archivo si estoy desplegando una nueva?

Si miramos un poco más y usamos el ./apply_amps.sh -force , tenemos lo siguiente:

– WARNING: The file ‘/themes/sampleTheme/images/alfresco-imagelib.png’ is being overwritten by this module. The original has been backed-up to ‘/WEB-INF/classes/alfresco/module/backup/f2d9c362-73b2-11e7-9166-857b2fac416e.bin’

Y nuestro problema vendrá cuando corrijamos esa ruta e intentemos desplegar esa misma imagen en una ruta distinta, veremos como Alfresco carga la que tiene en backup.

Solución.

  • Pongamos que nuestro Alfresco es el 5.2.
  • Cogemos el war limpio de la misma versión. ¿Qué significa limpio? Pues nos descargamos los fuentes de Alfresco, y tomamos el war de la misma versión que nosotros usamos. Vamos, que no haya sido utilizado nunca.
  • Tenemos que renombrar el war que queramos sustituir de nuestra instalación: Por ejemplo de alfresco.war a alfresco.war.previous o lo que queráis pero .lo-que-quieras para que no sea tenido en cuenta cuando cargue tomcat.
  • Copiamos el war en nuestro_alfresco/tomcat/webapps/
  • Ejecutamos ./apply_amps.sh (o bat si es para plataforma windows).
  • Veremos como habrá desaparecido tanto el error como los warnings.
  • Serás más feliz :-)

Espero que os sirva.

¡Un saludo!

[TIP] Problemas entre addon alfresco-pdf-toolkit y Alfresco One 4.2

Buenas.

Recientemente le he instalado el addon alfresco-pdf-toolkit en un Alfresco 4.2 Enterprise y al tratar de compilarlo desde mi eclipse me encontré con este error:

 [ERROR] Failed to execute goal on project pdf-toolkit-repo: Could not resolve dependencies for project org.alfresco.extension:pdf-toolkit-repo:amp:1.2-SNAPSHOT: Failed to collect dependencies at org.alfresco:alfresco-enterprise-repository:jar:4.2.3 -> org.activiti:activiti-explorer:jar:5.13-alf-20140708 -> com.thebuzzmedia:imgscalr-lib:jar:3.1: Failed to read artifact descriptor for com.thebuzzmedia:imgscalr-lib:jar:3.1: Could not transfer artifact com.thebuzzmedia:imgscalr-lib:pom:3.1 from/to buzzmedia (<a class="Xx" dir="ltr" tabindex="-1" href="http://www.google.com/url?q=http%3A%2F%2Fmaven.thebuzzmedia.com&sa=D&sntz=1&usg=AFQjCNETyfe-xBQ1V_CxpfLkQMF2fwnhOA" target="_blank" rel="nofollow noreferrer" data-display="http://maven.thebuzzmedia.com" data-sanitized="http://www.google.com/url?q=http%3A%2F%2Fmaven.thebuzzmedia.com&sa=D&sntz=1&usg=AFQjCNETyfe-xBQ1V_CxpfLkQMF2fwnhOA">http://maven.thebuzzmedia.com</a>): Connect to maven.thebuzzmedia.com:80 [maven.thebuzzmedia.com/74.50.48.226] failed: Connection refused -> [Help 1] 

Sigue leyendo

[Tip] Refresca tu desarrollo java en caliente en Alfresco 4.x y 5.x

Buenas.

Hace poco estuve en un cliente trabajando, entre otras cosas, con la SDK 2.1.1 de Maven y clases Java. Cada vez que tenía que re-desplegar un desarrollo perdía como mínimo 3 minutos y eso sin contar que se complicase el tema:

  • Para el servicio
  • Despliega el contenido
  • Arranca
  • Mira logs
  • Si hay un error corrígelo
  • Empieza de nuevo desde el punto 1

Sigue leyendo

[Tutorial] Aprendiendo javascript para Alfresco – Capitulo Final

Muy buenas a todos.

Hace algún tiempo empecé a escribir un tutorial sobre cómo empezar a bichear los javascripts en alfresco. Pues bien, mi meta con este post es un poco el haceros un resumen sobre los pasos finales que os pueda recomendar para poder abordar los pequeños desarrollos con mayor agilidad y facilidad e intentar facilitaros un poco el trabajo.

Documentación & entorno de trabajo
Antes de nada, tened siempre a mano abierto los siguientes links que os servirán de apoyo para realizar vuestros scripts:

  1. APIs Javascripts en Alfresco. Dependiendo de la versión de alfresco que utilices, seleccionala dentro de la wiki para ver las funciones o métodos que hay disponible para esa versión.
  2. Cookbook de javascript. Dentro de la wiki, está este “libro de recetas” con muchos ejemplos con javascript.
  3. MADEJA. Sección proporcionada por la Junta de Andalucía con el contenido en Castellano =) (además tienes mucha información de Alfresco).
  4. Por supuesto, tener siempre acitvada nuestra consola de depuración para ver qué hace nuestro script. También existe para el Share (en vez de http://localhost:8080/alfresco/service/api/javascript/debugger, es http://localhost:8080/share/service/api/javascript/debugger) a partir de la 3.3.x
  5. La Comunidad de Alfresco. Sé que muchos preguntáis allí, pero lo que debemos entre todos es intentar cada día ayudarnos. Recordad eso de “hoy por tí, mañana por mí” ;)

Consejo: Además de todo esto, si usáis Firefox os recomiendo que os bajéis la extensión “Firebug” que sirve para mostraros el código fuente de una página que estáis visualizando (observad las fotos del enlace). Esto sirve, sobre todo, para ver qué valores tiene o adquiere un elemento cuando lo modificáis.
Un ejemplo sencillo: Imaginad que queréis quitar de la parte de abajo el logo de Alfresco y el Copyright porque os ha pedido el cliente que pongáis el suyo, pues bien con esta aplicación, sobre el banner/logo si pulsáis el botón derecho del ratón y le dáis a inspeccionar elemento, os saldrá la url de donde está cargando esa imagen y como se llama, así podréis buscarla en vuestro despliegue para una manipulación libre =)Nota: Chrome, trae ya por defecto en sus últimas versiones una utilidad similar a esta nativamente y sin necesidad de descargar nada adicional.

Una vez preparado vuestro entorno, ¡es hora de desarrollar! =)

Aportaciones
Ya sabéis que soy bastante partidaria de la colaboración (pensad que es ahorrar trabajo y no malgastar tiempo en cosas que ya se han hecho), así que en este apartado os voy a poner script o trozos de código para que los podáis reutilizar.

Consejo: Cuando se os plantee algún desarrollo “grande”, tened presente eso de “Divide y Vencerás“: Intentad dividirlo en otros más pequeños, así se te hará bastante más sencillo el realizar el desarrollo y depurarlo.

Aquí algunos ejemplos que os comparto:

  • Contar los documentos de forma recursiva.
contar(companyhome.childByNamePath("mi_espacio"));

function contar(nodeVar) {
    if (nodeVar.isDocument) {
       if(nodeVar.mimetype == "application/pdf" )
             arrayTipos[0]++;
       else if (nodeVar.mimetype == "application/msword" )
             arrayTipos[1]++;
      else
             arrayTipos[2]++;
        contadorDocs++;               
      } else if (nodeVar.isContainer) {
        var childrenList = nodeVar.children;
        for (var i = 0; i &lt; childrenList.length; i++) {
            contar(childrenList[i]);
        }
    }
}
  • Obtener categoria “Empresas” y sus hijos utilizando lucene.
var catName="Empresas";
var srchQuery = "+TYPE:"cm:category" +PATH:"/cm:generalclassifiable//*"";
srchQuery += " +@cm\:name:""+catName+"//*"";
var categoria = search.luceneSearch(srchQuery);
var catHijos = categoria.children;

Sigue leyendo