Import FTP: JavaException

cancel
Showing results for 
Search instead for 
Did you mean: 
nyakooza
Member II

Import FTP: JavaException

Bonjour, j'utilise la version alfresco-community-tomcat-2.1.0 sur windows 2000.
J'ai activé le protocole FTP et le transfert de fichier ou d'arborescence entière fonctionne… ou presque.

En effet il n'y a aucun problème lorsque j'importe des fichiers simples, ou des petites arborescences de fichier.
En revanche, j'ai des soucis lorsque je veux passer une arborescence de fichier plus importante (de l'ordre de 150-200Mo, contenant plusieurs centaines de fichiers).
1) Parfois il n'y a aucun problème, l'import se fait sans encombre.
2) mais dans d'autre cas j'ai des Exceptions Java qui sont levées et j'ai du mal à en comprendre la raison
voici un exemple de problèmes signalés:

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:224)
        at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:160)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:163)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:210)
        at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
        at org.alfresco.repo.content.transform.PoiHssfContentTransformer.transformInternal(PoiHssfContentTransformer.java:87)
        at org.alfresco.repo.content.transform.AbstractContentTransformer.transform(AbstractContentTransformer.java:246)
        at org.alfresco.repo.content.transform.AbstractContentTransformer.transform(AbstractContentTransformer.java:210)
        at org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerImpl.indexProperty(ADMLuceneIndexerImpl.java:821)
        at org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerImpl.createDocuments(ADMLuceneIndexerImpl.java:542)
        at org.alfresco.repo.search.impl.lucene.ADMLuceneIndexerImpl.updateFullTextSearch(ADMLuceneIndexerImpl.java:1248)
        at org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexerImpl.index(FullTextSearchIndexerImpl.java:188)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
        at $Proxy9.index(Unknown Source)
        at org.alfresco.repo.search.impl.lucene.fts.FTSIndexerJob.execute(FTSIndexerJob.java:52)
        at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at org.apache.poi.hssf.record.UnknownRecord.<init>(UnknownRecord.java:62)
        at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:57)
        at org.apache.poi.hssf.record.ObjRecord.fillFields(ObjRecord.java:99)
        at org.apache.poi.hssf.record.Record.fillFields(Record.java:90)
        at org.apache.poi.hssf.record.Record.<init>(Record.java:55)
        at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:61)
        … 30 more
### Excluding compile: org.alfresco.repo.search.impl.lucene.index.IndexInfo$Merger::mergeDeletions

–> conséquence:
1) soit l'import se fait quand même, du moins en apparence
2) soit l'import se bloque, et c'est même le serveur qui se bloque, je ne peux plus y accéder….


Qqun pourrait-il m'éclairer sur ce problème?
petite précision: j'utilise le client FTP Filezilla 3.0.10

merci!
Cordialement,
Michel
11 Replies
rguinot
Customer

Re: Import FTP: JavaException

org.apache.poi.hssf.record

POI-HSSF est une API Java permettant de lire le format propriétaire Microsoft Excel, pour, entre autres, la transformation en plain-text pour l'indexation full-text et sans doute l'extraction de métadonnées.

Il semble donc que certains documents Excel que vous lui donnez à manger lui pose problème, cela ne devrait pas pour autant bloquer l'indexation des suivants.
Vous obtiendrez peut être de meilleurs résultats en installant OpenOffice et en configurant la socket openoffice (qui serait alors headless). L'avez vous installée ?

qq infos pour cela:
http://wiki.alfresco.com/wiki/SpecialSmiley Frustratedearch?search=Openoffice&go=Go , http://wiki.alfresco.com/wiki/Running_OpenOffice_From_Terminal
Il se peut alors qu'Alfresco tente une transformation via Openoffice si hssf plante,si ce n'est pas le cas il faudra configurer l'ordre de préférence des transformers pour passer uniquement par OpenOffice pour voir si vous obtenez un meilleur résultat.

plus avancé : vous pouvez déterminer la liste exacte qu'ALfresco n'a pas pu indexer pour cause de transformation "plantée", via une requête lucene spéciale :
TEXT:nitf
que vous pouvez éxécuter par exemple via le navigateur de noeuds.

plus d'infos la dessus ici : http://wiki.alfresco.com/wiki/Content_Transformations#Full_Text_Indexing
nyakooza
Member II

Re: Import FTP: JavaException

Avec la requête lucene j'ai réussi à identifier les fichiers qui posaient problèmes, et ce sont bien des fichiers Excel.. mais pas tous! Il y a également des fichiers Word

Quant à la solution concernant la socket openoffice, j'avoue ne pas très bien la comprendre, en quoi lancer OpenOffice en headless me permettrait d'éviter ces problèmes.

Ma dernière solution serait alors de désactiver totalement l'indexation des fichiers de type .XLS, ce qui serait assez gênant vu que la majorité des données que j'importe sont des fichiers excel…
rguinot
Customer

Re: Import FTP: JavaException

OpenOffice peut aussi servir pour l'indexation des documents Excel. Etant donné que HSSF peut aussi lire des documents Excel et est à ma connaissance plus rapide qu'Openoffice, il est utilisé en priorité.
Alfresco attribue une "note" à chaque transformer possible et sélectionne le "meilleur" au moment de l'indexation en fonction de cette note.

Par contre,vous pouvez dans la configuration déclarer que vous  voulez utiliser openoffice exclusivement pour les fichiers Office (à la place de POI) et voir si par ce biais vous obtenez de meilleurs résultats. L'indexation  sera en revanche probablement un peu plus lente…
nyakooza
Member II

Re: Import FTP: JavaException

Est-ce que cette démarche est bien la bonne pour configurer la socket open office? (je ne suis pas vraiment à l'aise avec tout ceci…)

    * Install Open Office
    * Launch it one time (sothat you have filled the registrering form of Open Office which does only popup one time)
    * Open a Command-Prompt (CMD) and goto your Open Office Executable directory (for example C:\Programme\OpenOffice.org 2.0\program)
    * Run Open Office in headless Modus with this command:
    soffice.exe -headless -nologo -norestore -accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager

    * check if its running by typing: netstat -anp tcp
    you should find a line:
        TCP 127.0.0.1:8100 0.0.0.0:0 ABHÖREN

Il se peut alors qu'Alfresco tente une transformation via Openoffice si hssf plante,si ce n'est pas le cas il faudra configurer l'ordre de préférence des transformers pour passer uniquement par OpenOffice pour voir si vous obtenez un meilleur résultat.
Pourriez vous m'aider en m'indiquant comment m'y prendre? du moins une piste
Merci

PS: j'ai oublié de préciser qu'apparemment, le probleme ne survient plus que lors de l'import FTP, mais aussi lorsque je fais l'upload par le webclient.
De plus avec OpenOffice installé, j'ai des warnings qui apparaissent dans la fenêtre de Tomcat après import.

[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
[WARNING] Unknown Ptg 3c (60)
denisr
Member II

Re: Import FTP: JavaException

Bonjour, Smiley Happy
j'ai le même problème depuis hier soir.
Et il n'y a pas de FTP. Le serveur prend 99% de CPU et on est obligé de le relancer.
mais j'avais aussi "Unknown tag" dans mon log et je n'ai pas encore installé OpenOffice. Il faut que je fasse un peu de tests avant d'installer en production.
Y'a-t-il une solution de contournement par configuration qui permet de tenir quelques jours?
Quelqu'un connait-il  les caractéristiques des fichiers en question, excel et ou word? Cela peut-il  à voir avec la présence avec la présence de macros?

Cordialement,
DenisR
nyakooza
Member II

Re: Import FTP: JavaException

Pour moi installer OpenOffice n'empeche pas tous ces messages d'erreur. Mais toutefois mon serveur n'a plus l'air de planter. Je n'ai donc pas trouver de solution de contournement.

En ce qui concerne les fichiers, il y a de très fortes chances que ça soit dû à des macros, car la plupart de mes fichiers excel en contiennent. Mais je n'en suis pas sûr à 100%.
denisr
Member II

Re: Import FTP: JavaException

Bonjour,
Pour ton information, dans une telle situation, tu peux désactiver l'indexation le temps d'installer OpenOffice ce qui évite au moins à alfresco de planter.
Pour ce faire, il faut éditer le fichier (dans le cas d'une uitlisation avec tomcat)
tomcat/webapps/alfresco/WEB-INF/classes/alfresco/scheduled-jobs-context.xml
Et mettre en commentaire la section ftsIndexerTrigger

Bon mais je vois qu'en fait tu as installé OpenOffice. Je sens que c'est ce que nous allons devoir faire, en urgence évidemment.
Si j'avais su je l'aurais fait depuis longtemps.

Cordialement,
DenisR
pocchakool_2685
Member II

Re: Import FTP: JavaException

Message par rguinot sur 05 Juin 2008, 16:09
[…] vous pouvez dans la configuration déclarer que vous voulez utiliser openoffice exclusivement pour les fichiers Office (à la place de POI) et voir si par ce biais vous obtenez de meilleurs résultats. L'indexation sera en revanche probablement un peu plus lente…

Comment puis-je spécifier à Alfresco d'utiliser uniquement OOo pour l'indexation?

Merci pour votre aide  Smiley Happy

Steph
denisr
Member II

Re: Import FTP: JavaException

Bonne question! :roll: