AnsweredAssumed Answered

Imagemagick tiff2pdf transformer deaktivieren

Question asked by akeller on Jan 6, 2013
Latest reply on Jan 7, 2013 by lotharmärkle
Ich benutze seit Version 4.02 CE einen ocr transformer mit abbyyocr und es funktioniert bestens.
Momentan teste ich die Alfresco CE 4.2c und habe wegen der neuen automatischen Auswahl der Transformer nach ihrer Performance das Problem, dass der ocr transformer gelegentlich durch den tiff2pdf transformer mit ImageMagick ersetzt wird.

Ich habe nicht herausgefunden, wo der Transformer Imagemagick für tiff->pdf definiert wird, auch nicht in /opt/alfresco-4.2.c/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/content-services-context.xml

Folgender Versuch führt zu einer Fehlermeldung (bzw. rotem Balken "Keine Dateien") , wenn bestimmte Ordner gelistet werden:

Mein OCR-Kontext mit den Transfomer Limits (ein Limit von 0 in transformer.ImageMagick und ein Limit von 80mb in transformer.tiff2pdf


<?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="transformer.ImageMagick"
        class="org.alfresco.repo.content.transform.ProxyContentTransformer"
        parent="baseContentTransformer">
                <property name="mimetypeLimits">
                    <map>
                        <entry key="image/tiff">
                                <map>
                                        <entry key="application/pdf">
                                                <bean class="org.alfresco.service.cmr.repository.TransformationOptionLimits">
                                              <property name="maxSourceSizeKBytes">
                                                       <value>0</value>
                                              </property>

                                        </bean>
                                  </entry>
                        </map>
                </entry>
           </map>
        </property>
        </bean>

<bean id="transformer.worker.tiff2pdf" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
                <property name="mimetypeService">
                        <ref bean="mimetypeService" />
                </property>
                <property name="checkCommand">
                        <bean class="org.alfresco.util.exec.RuntimeExec">
                                <property name="commandsAndArguments">
                                        <map>
                                                <entry key=".*">
                                                        <list>
                                                                <value>/opt/ABBYYOCR9/abbyyocrwrapper.sh</value>
                                                        </list>
                                                </entry>
                                        </map>
                                </property>
                        </bean>
                </property>

                <property name="transformCommand">
                        <bean class="org.alfresco.util.exec.RuntimeExec">
                                <property name="commandsAndArguments">
                                        <map>
                                                <entry key=".*">
                                                        <list>
                                                                <value>/opt/ABBYYOCR9/abbyyocrwrapper.sh</value>

                                                                <value>-rl</value>
                                                                <value>German</value>

                                                                <value>-ic</value>
                                                                <value>ABBYYLossless</value>

                                                                <value>-ido</value>

                                                                <value>-if</value>
                                                                <value>${source}</value>

                                                                <value>-paem</value>
                                                                <value>ImageOnText</value>

                                                                <value>-pafpf</value>
                                                                <value>CCITT4</value>

                                                                <value>-pafpr</value>
                                                                <value>600</value>

                                                                <value>-pafq</value>
                                                                <value>85</value>

                                                                <value>–pdfaWriteTaggedPDF</value>

                                                                <value>-pku</value>

                                                                <value>-f</value>
                                                                <value>PDFA</value>

                                                                <value>-of</value>
                                                                <value>${target}</value>
                                                        </list>
                                                </entry>
                                        </map>
                                </property>
                                <property name="errorCodes">
                                        <value>1,2</value>
                                </property>
                        </bean>
                </property>

                <property name="explicitTransformations">
                        <list>
                                <bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
                                        <property name="sourceMimetype"><value>image/tiff</value></property>
                                        <property name="targetMimetype"><value>application/pdf</value></property>
                                </bean>
                        </list>
                </property>
        </bean>

        <bean id="transformer.tiff2pdf" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
                <property name="worker">
                        <ref bean="transformer.worker.tiff2pdf" />
                </property>
                <property name="mimetypeLimits">
                    <map>
                        <entry key="image/tiff">
                                <map>
                                        <entry key="application/pdf">
                                                <bean class="org.alfresco.service.cmr.repository.TransformationOptionLimits">
                                              <property name="maxSourceSizeKBytes">
                                                       <value>80000</value>
                                              </property>
                                        </bean>
                                  </entry>
                        </map>
                </entry>
           </map>
        </property>
        </bean>
</beans>

Fehlermeldung:


2013-01-06 22:03:55,342  ERROR [org.alfresco.fileserver] [Sess_FTP0_10.1.3.2] Error from JLAN
java.lang.NullPointerException
        at org.alfresco.repo.content.transform.ProxyContentTransformer.isTransformableMimetype(ProxyContentTransformer.java:64)
        at org.alfresco.repo.content.transform.AbstractContentTransformerLimits.isTransformable(AbstractContentTransformerLimits.java:105)
        at org.alfresco.repo.content.transform.TransformerSelectorImpl.findTransformers(TransformerSelectorImpl.java:60)
        at org.alfresco.repo.content.transform.TransformerSelectorImpl.selectTransformers(TransformerSelectorImpl.java:44)
        at org.alfresco.repo.content.transform.ContentTransformerRegistry.getActiveTransformers(ContentTransformerRegistry.java:117)
        at org.alfresco.repo.content.ContentServiceImpl.getActiveTransformers(ContentServiceImpl.java:1014)
        at org.alfresco.repo.content.ContentServiceImpl.getTransformers(ContentServiceImpl.java:785)
        at org.alfresco.repo.content.ContentServiceImpl.getTransformer(ContentServiceImpl.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:80)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.model.ml.MLContentInterceptor.invoke(MLContentInterceptor.java:125)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy53.getTransformer(Unknown Source)
at org.alfresco.repo.action.executer.TransformActionExecuter.executeImpl(TransformActionExecuter.java:181)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
        at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl(CompositeActionExecuter.java:66)
        at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(ActionExecuterAbstractBase.java:241)
        at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(ActionServiceImpl.java:822)
        at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionServiceImpl.java:723)
        at org.alfresco.repo.action.ActionServiceImpl.executeAction(ActionServiceImpl.java:557)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.alfresco.repo.security.permissions.impl.AlwaysProceedMethodInterceptor.invoke(AlwaysProceedMethodInterceptor.java:34)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.security.permissions.impl.ExceptionTranslatorMethodInterceptor.invoke(ExceptionTranslatorMethodInterceptor.java:46)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.alfresco.repo.audit.AuditMethodInterceptor.invoke(AuditMethodInterceptor.java:159)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
        at $Proxy41.executeAction(Unknown Source)
        at org.alfresco.repo.rule.RuleServiceImpl.executeAction(RuleServiceImpl.java:1222)
        at org.alfresco.repo.rule.RuleServiceImpl.executeRule(RuleServiceImpl.java:1216)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRule(RuleServiceImpl.java:1163)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRulesImpl(RuleServiceImpl.java:1114)
        at org.alfresco.repo.rule.RuleServiceImpl.executePendingRules(RuleServiceImpl.java:1087)
        at org.alfresco.repo.rule.RuleTransactionListener.beforeCommit(RuleTransactionListener.java:57)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:735)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.doBeforeCommit(AlfrescoTransactionSupport.java:715)
        at org.alfresco.repo.transaction.AlfrescoTransactionSupport$TransactionSynchronizationImpl.beforeCommit(AlfrescoTransactionSupport.java:681)
        at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:95)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:927)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:737)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)
        at org.alfresco.util.transaction.SpringAwareUserTransaction.commit(SpringAwareUserTransaction.java:472)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:455)
        at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:323)
        at org.alfresco.filesys.repo.CommandExecutorImpl.execute(CommandExecutorImpl.java:103)
        at org.alfresco.filesys.repo.NonTransactionalRuleContentDiskDriver.closeFile(NonTransactionalRuleContentDiskDriver.java:163)
        at org.alfresco.filesys.repo.LegacyFileStateDriver.closeFile(LegacyFileStateDriver.java:315)
        at org.alfresco.filesys.repo.BufferedContentDiskDriver.closeFile(BufferedContentDiskDriver.java:446)
        at org.alfresco.jlan.ftp.FTPSrvSession.procStoreFile(FTPSrvSession.java:2405)
        at org.alfresco.jlan.ftp.FTPSrvSession.run(FTPSrvSession.java:5085)
        at java.lang.Thread.run(Thread.java:722)
2013-01-06 22:03:55,423  DEBUG [content.transform.TransformerDebug] [Sess_FTP0_10.1.3.2] 2           Finished in 0 ms Transformer NOT called

Für einen hilfreichen Tipp wäre ich ausgesprochen dankbar.
Andreas

Outcomes