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.xmlFolgender 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