Archivo de la categoría: levantar

[ERROR] Solr4: Unable to create core alfresco

Buenas.

Hace poco al instalar unos amps en un Alfresco 5.0.d usando el instalador apply_amps.sh de el directorio /opt/alfresco-5.0.d/bin/, al arrancar mi alfresco me encontré el siguiente error:

ERROR [solr.core.CoreContainer] [coreLoadExecutor-5-thread-2] Unable to create core: alfresco
org.apache.solr.common.SolrException: Could not load core configuration for core alfresco
at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:66)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:554)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:261)
at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:253)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.solr.common.SolrException: org.xml.sax.SAXParseException; systemId: solrres:/schema.xml; lineNumber: 403; columnNumber: 105; An invalid XML character (Unicode: 0x2) was found in the comment.. Schema file is /Applications/Alfresco/community/alfresco-5.0.d/solr4/workspace-SpacesStore/schema.xml
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:593)
at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:165)
at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)
at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:89)
at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:62)
... 9 more
Caused by: org.apache.solr.common.SolrException: org.xml.sax.SAXParseException; systemId: solrres:/schema.xml; lineNumber: 403; columnNumber: 105; An invalid XML character (Unicode: 0x2) was found in the comment.
at org.apache.solr.core.Config.<init>(Config.java:148)
at org.apache.solr.core.Config.<init>(Config.java:86)
at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:443)
... 14 more
Caused by: org.xml.sax.SAXParseException; systemId: solrres:/schema.xml; lineNumber: 403; columnNumber: 105; An invalid XML character (Unicode: 0x2) was found in the comment.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.scanComment(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanComment(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.apache.solr.core.Config.<init>(Config.java:134)
... 16 more

Después de leer esta incidencia de Alfresco, intenté aplicarla pero no pude porque sencillamente no aplicaba a mi instalación (ya tenía el archivo nombrado a solr4.xml y no había por ningún lado el parámetro docBase).

Finalmente dí con la solución:

  1. Me dirijo a la carpeta de mi instalación
    • cd /opt/alfresco-5.0.d/
  2. Paro Alfresco
    • ./alfresco.sh stop
  3. Elimino el directorio solr4/
    • rm -rf  tomcat/webapps/solr4/
  4. Inicio Alfresco
    • ./alfresco.sh start
  5. Monitorizo el log para ver que todo funciona bien
    • tail -n500 -f tomcat/logs/catalina.out

Y listo, todo como la seda.

Sé que es una chorrada pero me ha llevado algo de tiempo dar con lo que era y si publicándolo os puedo ahorrar algo de tiempo, mejor que mejor ;-)

¡¡Un saludo!!

[Alfresco Tip] Crear un servicio de alfresco en linux

Buenas.

¿No os ha ocurrido a veces que te encuentras una instalación en el que Alfresco no arranca al iniciar el sistema operativo? Hay una opción sencilla para hacerlo y es creando un demonio o servicio dentro del sistema operativo que dispongáis. En mi caso os voy a explicar cómo hacerlo para Ubuntu 14.04 LTS

Los pasos que vamos a realizar son:

  • Creamos el script que se encargará de levantar nuestro alfresco
  • Configuramos las variables que nos interesan de acuerdo con nuestra instalación
  • Creamos y damos permisos a los archivos necesarios
  • Refrescamos los servicios a nivel de sistema operativo
  • ¡A probar!

¡Manos a la obra!

Antes de nada comprobaremos que no esté creado en el sistema, para ello listaremos los que existen actualmente con el siguiente comando:

ls -l /etc/init.d/

Os devolverá algo similar a estas entradas:

-rw-r–r– 1 root root 4290 mar 12  2013 apache2
-rwxr-xr-x 1 root root 6173 abr 13  2012 bluetooth
-rwxr-xr-x 1 root root 4077 may  2  2010 ssh
….

Fijaros que no haya ninguno relativo a alfresco o tomcat. Una vez comprobado que realmente no disponemos de ningún servicio, procedemos a crear uno. Para ello realizamos los siguientes pasos:

    1. $ cd /etc/init.d/
    2. $ sudo nano alfresco
      Se nos abrirá el editor de texto. Deberemos pegar el siguiente contenido:

      #!/bin/sh
      #
      # description: Alfresco init.d startup
      # author: Cristina Martin
      # date: 18.12.15
      #
      ### BEGIN INIT INFO
      # Provides:          alfresco
      # Start:             start
      # Stop:              stop
      # Restart:           restart
      # Status:            status   
      # Description:       Alfresco start|stop|restart|status
      ### END INIT INFO
      
      RETVAL=0
      ALF_USER=alfresco
      ALF_LOGS=/var/log/alfresco
      ALF_HOME=/opt/alfresco-4.2.f
      ALF_CURRENT_USER=`whoami`
      #echo starttt
      #echo $ALF_CURRENT_USER
      start () {
          cd $ALF_LOGS
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh start $2
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh start $2"
          fi
          #$ALF_HOME/alfresco.sh start $2
          #/opt/alfresco/alfresco.sh start "$2"
          RETVAL=$?
          if [ -d "/var/lock/subsys" ] &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; [ `id -u` = 0 ] &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; [ $RETVAL -eq 0 ] ; then
              touch /var/lock/subsys/alfresco
          fi
      }
      
      stop () {
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh stop $2
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh stop $2"
          fi
          RETVAL=$?
      }
      
      
      case "$1" in
          start)
              start "$@"
              ;;
          stop)
              stop "$@"
              ;;
          restart)
              stop "$@"
              start "$@"
              ;;
          *)
          if [ $ALF_CURRENT_USER = $ALF_USER ] ; then
             $ALF_HOME/alfresco.sh $@
          else
             su $ALF_USER -c "$ALF_HOME/alfresco.sh $@"
          fi
          RETVAL=$?
      esac
      exit $RETVAL
      
      
    3. A tener en cuenta las siguientes líneas (cambiadlas por los valores que estéis usando):
      ALF_USER=alfresco
      ALF_LOGS=/var/log/alfresco
      ALF_HOME=/opt/alfresco-5.0.a

      ALF_USER: Es el usuario que se encargará de arrancar el alfresco
      ALF_LOGS: Será la ruta donde se guardaran los logs que genere nuestro servicio
      ALF_HOME: La ruta donde está instalado nuestro Alfresco

    4. Realizamos lo siguiente:
      $ control + x
      $ Y
      $ Tecla “intro”Con esto salvaremos nuestro nuevo fichero
    5. Asignamos permisos a nuestro nuevo archivo:
      sudo chown alfresco /etc/init.d/alfresco
      sudo chmod 755 /etc/init.d/alfresco
    6. Necesitamos crear la carpeta donde salvaremos los logs que se generen con este servicio y dar permisos a nuestro usuario:
      sudo mkdir /var/log/alfresco
      sudo chown alfresco /var/log/alfresco
    7. Lo siguiente es decirle a nuestro Sistema que hemos introducido este nuevo servicio y que queremos cargarlo cuando se inicie el sistema, para ello ejecutamos la siguiente orden:
      sudo update-rc.d alfresco defaults
    8. Reiniciar el sistema para probar que funciona y se inicia Alfresco correctamente con el comando reboot

Y con esto tendremos configurado nuestra instalación de Alfresco como servicio, de forma que si el servidor sufre alguna caída, Alfresco pueda levantarse automáticamente.

Espero que os haya servido este tip ;-)

Un saludo.

Arrancar Alfresco como No Servicio (Windows/Linux)

Muy buenas a todos.

Seguramente a más a uno os ha parecido incómodo el hecho de Alfresco arranque como sevicio en windows, y no poder ver el log del tomcat, entre otras cosas, a la vez que arranca. Pues bien, os dejo un truco sencillo que os permitirá arrancarlo como siempre y sin que se levante como servicio de Windows.

Lo primero que debemos hacer es editar el archivo $ALF_HOME$/tomcat/bin/startup.bat e incluir:

set JAVA_OPTS=-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=256m -XX:NewSize=256m -server -Dfile.encoding=UTF-8

Esto incluye el Perm que es necesario para que la aplicación levante, ya que si no lanza un error grave y no levanta la Webapp.

Nota: Tened cuidado con los valores de estas variables, pues según le indiquéis esa será la memoria que consuma en vuestro equipo.El segundo paso es copiar el archivo $ALF_HOME$/tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties, pegarlo dentro de

$ALF_HOME$/tomcat/shared/classes/ y sustituir:

log4j.appender.File.File=alfresco.log

por:

log4j.appender.File.File=C:/Alfresco/tomcat/logs/alfresco.log


De esta manera el archivo ‘alfresco.log’ se generar en el directorio de ‘logs’ del Tomcat y no en el directorio ‘system32’ de nuestro sistema como hasta ahora lo estaba haciendo.
Sigue leyendo