Archivo de la categoría: error

[Error] Problemas con SLF4JLogFactory y Alfresco 4.2.x

Muy buenas.

Cuando nos toca trabajar con la SDK 1.1.1 – porque algunas veces puede ocurrir que nos encontremos algún cliente sigue usando Alfresco 4.2.x – nos tocará lidiar con esta versión de SDK siguiendo la tabla de compatibilidades publicada por Alfresco. Si utilizamos el arqueotipo «todo en uno» por defecto tenemos un error nada más arrancar:

GRAVE: Servlet /alfresco threw load() exception
org.apache.commons.discovery.DiscoveryException: Class org.apache.commons.logging.impl.SLF4JLogFactory does not implement org.apache.commons.logging.LogFactory
at org.apache.commons.discovery.tools.ClassUtils.verifyAncestory(ClassUtils.java:180)
at org.apache.commons.discovery.tools.SPInterface.verifyAncestory(SPInterface.java:201)
at org.apache.commons.discovery.tools.SPInterface.newInstance(SPInterface.java:195)
at org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java:579)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:418)
at org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:378)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.transport.http.AxisServletBase.<clinit>(AxisServletBase.java:58)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrConstructorNewInstance(ReflectiveInterceptor.java:1002)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassNewInstance(ReflectiveInterceptor.java:989)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:138)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5033)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5317)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

Incluso el error está reconocido por Alfresco en este ticket, pero lamentablemente la solución que proponen no funciona :-(

Después de horas de quebramiento de cabeza, cientos de pruebas y combinaciones, esto es lo que me funcionó:

Sigue leyendo

[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

Alfresco Share: Error status 408 Read timed out

Buenas a todos.

Quiero compartir este problema porque, en un principio, no le encontramos solución buscando por Internet y creo que podría servirle a más de uno en el futuro:

Tenemos una instalación en un cliente con más de 100 gigas (y creciendo), unos 6.000 usuarios (creciendo también), un Alfresco 3.4.10 y una JVM de 8 gigas asignada (para la heap – Xmx y Xms).

Aqui el problema: Mediante un dashlet que mostraba todos los workflows de un usuario (usando el getPooledTasks del servicio del workflow), cuando intentaba rescatar alrededor de 5.100 tareas Alfresco no era capaz de reaccionar y nos mostraba este error a nivel de servidor de aplicaciones (catalina.out, o en mi caso el log hub de weblogic):

17:04:20,050  INFO  [webscripts.connector.RemoteClient] Error status 408 Read timed out
java.net.SocketTimeoutException: Read timed out
        at java.net.SocketInputStream.socketRead0(Native Method)
        at java.net.SocketInputStream.read(SocketInputStream.java:129)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)….

El problema es que Alfresco, con la JVM que tiene (la heap en concreto) no es capaz de atender todas las peticiones que recibe, excediendo el tiempo que tiene establecido internamente para la respuesta entre Alfresco y Share (por defecto 120 segundos), de ahí a que muestre un read time out.

Investigando por Google encontramos varios JIRAs, pero hablan de la 4.0 y nosotros tenemos una 3.4. por lo que no nos servía.

Aquí la solución para Alfresco versión 3.4:

  1. Abrir el jar spring-webscripts-X.X.X-SNAPSHOT.jar que encontráis en webapps/alfresco/WEB-INF/lib/ y navega dentro de él por: org/springframework/extension/webscript/
  2. Copia spring-webscript-application-context.xml a tu carpeta web-extension (en shared/classes/alfresco) con el nombre custom-spring-webscript-application-context.xml
  3. Incrementa las propiedades <property name=»readTimeout»><value>120000</value></property>
  4. Reiniciar el Alfresco

Aquí la solución para Alfresco versión 5.x:

  1. Repetir paso 1: Por ejemplo en una 5.0.x sería en WEB-INF/lib el jar spring-webscripts-5.0.2.5.jar
  2. Extrae el jar y abre el archivo  {EXTRACTED_DISK_PATH}\org\springframework\extensions\webscripts\spring-webscripts-application-context.xml
  3. Localiza la propiedad readTimeout, la podrás encontrar dentro del bean <bean id=»connector.remoteclient.abstract» abstract=»true»>
  4. Modifica el valor (está en milisegundos) y reinicia tu alfresco.

Y listo, ahora con el tiempo de respuesta incrementado cuando desde Share manda la petición alfresco es capaz de atender las peticiones y de devolver todas las tareas de ese usuario :-)

¡Espero que os haya servido!

¡Un saludo!

The remote server may be unavailable or your authentication details have not been recognized

¿Problemas al arrancar el Share de Alfresco recién instalado? Cuando te salga el aviso «the remote server may be unavailable or your authentication details have not been recognized» comprueba los end-points:

Copia el archivo share-config.xml de $ALF_HOME\tomcat\webapps\share\WEB-INF\classes\alfresco y pégalo en la siguiente ruta: $ALF_HOME\tomcat\shared\classes\alfresco\web-extension\ y renómbralo así: share-config-custom.xml

Descomenta los dos bloques que comienzan por (línea 170 y 191)

El archivo debe quedar con lo siguiente descomentado:
Sigue leyendo