Alfresco
Introducción
Una muy buena fuente de información y de introducción a la programación del Alfresco está en [2].
Cómo iniciar el servidor
Primero hay que bajarlo del la página de Alfresco [1], yo descargué el alfresco-community-3.4.d-installer-linux-x32.bin que es el ejecutable para Linux del instalador, es un instalador bien sui géneris. Y básicamente la instalación es muy estilo windows, pues pregunta más bien puertos que básicamente están predefinidos los que usa, yo no los cambié, luego enter a todo.
Para iniciar el servidor en el directorio del alfresco-community está el script alfresco.sh:
cd alfresco-3.4.d ./alfresco.sh start
El servidor tiene los comandos: start, stop, restart, help, y status.
Una vez iniciado el servidor, puede ingresar a la página: http://localhost:8080/alfresco, o en dónde lo haya instalado.
Si ya está corriendo puede reiniciarlo con:
./alfresco.sh restart
O includeo lo puede detener si gusta con:
./alfresco.sh stop
Instalando el Web Content Management
Alfresco Web Content Management es el manejador de contenidos y la máguina virtual de Java, para esta máquina virtual de java, toca bajar el paquete alfresco-community-avm-3.4.d.zip, y seguir las instrucciones de Installing AVM to an existing instance of Alfresco en [2], el directorio <extension> al que se refiere está en tomcat/shared/classes/alfresco/extension/ luego de esto hay que instalar los ejemplos como dice en System requirements and prerequisites en [2]
cURL
Para ejecutar un web script que se haya realizado, se puede hacer con curl así:
curl -uadmin:1234 "http://localhost:8080/alfresco/service/hellouser"
Con usuario admin y password 1234.
Para evitar poner siempre el usuario y el password, se puede pedir un ticket al servidor con:
$ curl "http://localhost:8080/alfresco/service/api/login?u=admin&pw=1234" <?xml version="1.0" encoding="UTF-8"?> <ticket>TICKET_4c649cf89a6e3a42c2efcdbe621c5429c010b924</ticket>
Ese ticket se puede exportar a una variable del sistema, y se vuelve a usar con la variable de forma más sencilla:
export TICKET=TICKET_4c649cf89a6e3a42c2efcdbe621c5429c010b924
Cada vez que se quiera hacer una consulta se pasa el ticket a la variable alf_ticket así:
curl "http://localhost:8080/alfresco/service/hellouser.json?alf_ticket=$TICKET" o curl -H "Accept: text/html" "http://localhost:8080/alfresco/s/hellouser?alf_ticket=$TICKET" o curl "http://localhost:8080/alfresco/s/cmis/p/Data%20Dictionary/children?types=documents&alf_$TICKET"
Callback
Los callback están explicados en [4], y en el libro de Professional Alfresco, hay que configurar el sistema para que permita hacer las llamadas de callback. Cree el archivo installLocation/tomcat/shared/classes/alfresco/web-extension/custom-web-framework-application-context.xml, el archivo puede tener cualquier nombre desde que termine con el prefijo -context.xml.
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <bean id="webscripts.container" parent="webscripts.abstractcontainer" class="org.springframework.extensions.webscripts.PresentationContainer"> <property name="name"><value>Spring Web Scripts Container</value></property> <property name="allowCallbacks"><value>true</value></property> </bean> </beans>
Errores y soluciones
La segunta vez que inicié el servidor de alfresco, me generó el siguiente error:
~/alfresco-3.4.d$ ./alfresco.sh start 110905 11:23:26 mysqld_safe Logging to '/home/juanfe/alfresco-3.4.d/mysql/data/mysqld.log'. 110905 11:23:27 mysqld_safe Starting mysqld.bin daemon with databases from /home/juanfe/alfresco-3.4.d/mysql/data /home/juanfe/alfresco-3.4.d/mysql/scripts/ctl.sh : mysql started at port 3306 Using CATALINA_BASE: /home/juanfe/alfresco-3.4.d/tomcat Using CATALINA_HOME: /home/juanfe/alfresco-3.4.d/tomcat Using CATALINA_TMPDIR: /home/juanfe/alfresco-3.4.d/tomcat/temp Using JRE_HOME: /home/juanfe/alfresco-3.4.d/java Using CLASSPATH: /home/juanfe/alfresco-3.4.d/tomcat/bin/bootstrap.jar PID file (/home/juanfe/alfresco-3.4.d/tomcat/temp/catalina.pid) found. Is Tomcat still running? Start aborted.
Simplemente borré el archivo tomcat/temp/catalina.pid y de nuevo lo inicié sin problemas.
[1] http://wiki.alfresco.com/wiki/Download_and_Install_Alfresco
[2] http://www.alfresco.com/help/34/community/all/
[3] http://code.google.com/p/alfresco-developer-guide/
[4] http://wiki.alfresco.com/wiki/Web_Scripts#JSON_Callbacks