cancel
Showing results for 
Search instead for 
Did you mean: 

Import FTP: JavaException

nyakooza
Champ in-the-making
Champ in-the-making
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 11

rguinot
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
Bonne question! :roll: