Projet

Général

Profil

Actions

Support #3500

fermé

Intégration export avec libreoffice

Ajouté par Emmanuel GRANGE il y a plus de 12 ans. Mis à jour il y a plus de 12 ans.

Statut:
Closed
Priorité:
Urgent
Assigné à:
-
Version cible:
-
Début:
05/07/2012
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Firefox 10
Votre version de Silverpeas:
5.9
Système d'exploitation:
Linux
Livraison en TEST:
Livraison en PROD:

Description

Bonjour,

Lorsque j’essaie d'exporter une publication (quelque soit le format), j'obtiens 2 types d'erreurs Jboss différentes (selon le type d'export désiré) :
- Pour ZIP, PDF et Word :

Etat HTTP 500 -

type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: L'exécution de la servlet a lancé une exception
    com.silverpeas.whitePages.filters.ComponentRequestRouterFilter.doFilter(ComponentRequestRouterFilter.java:96)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

cause mère

java.lang.NoClassDefFoundError: Could not initialize class javax.swing.RepaintManager
    javax.swing.JComponent.repaint(JComponent.java:4734)
    java.awt.Component.repaint(Component.java:3103)
    javax.swing.text.JTextComponent.setEditable(JTextComponent.java:1782)
    javax.swing.text.JTextComponent.<init>(JTextComponent.java:303)
    javax.swing.JTextField.<init>(JTextField.java:212)
    javax.swing.JTextField.<init>(JTextField.java:153)
    org.odftoolkit.simple.table.Cell.optimizeCellSize(Cell.java:2488)
    org.odftoolkit.simple.table.Cell.setDisplayTextContent(Cell.java:960)
    org.odftoolkit.simple.table.Cell.setStringValue(Cell.java:1091)
    com.silverpeas.kmelia.export.ODTDocumentTextTranslator.translateTables(ODTDocumentTextTranslator.java:96)
    com.silverpeas.kmelia.export.ODTDocumentTextTranslator.translate(ODTDocumentTextTranslator.java:83)
    com.silverpeas.kmelia.export.ODTDocumentBuilder.translate(ODTDocumentBuilder.java:213)
    com.silverpeas.kmelia.export.ODTDocumentBuilder.buildFrom(ODTDocumentBuilder.java:177)
    com.silverpeas.kmelia.export.KmeliaPublicationExporter.export(KmeliaPublicationExporter.java:104)
    com.stratelia.webactiv.kmelia.control.KmeliaSessionController.generateDocument(KmeliaSessionController.java:711)
    com.stratelia.webactiv.kmelia.control.KmeliaSessionController.exportPublication(KmeliaSessionController.java:4300)
    com.stratelia.webactiv.kmelia.servlets.KmeliaPublicationExportServlet.exportInArchive(KmeliaPublicationExportServlet.java:76)
    com.stratelia.webactiv.kmelia.servlets.KmeliaPublicationExportServlet.service(KmeliaPublicationExportServlet.java:58)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    com.silverpeas.whitePages.filters.ComponentRequestRouterFilter.doFilter(ComponentRequestRouterFilter.java:96)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de JBoss Web/3.0.0-CR2.

et pour OpenDocument Text :

Etat HTTP 500 -

type Rapport d'exception

message

description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.

exception

javax.servlet.ServletException: L'exécution de la servlet a lancé une exception
    com.silverpeas.whitePages.filters.ComponentRequestRouterFilter.doFilter(ComponentRequestRouterFilter.java:96)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

cause mère

java.lang.InternalError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
    sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
    sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:52)
    sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:155)
    java.security.AccessController.doPrivileged(Native Method)
    sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:131)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:169)
    java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
    javax.swing.RepaintManager.<clinit>(RepaintManager.java:178)
    javax.swing.JComponent.repaint(JComponent.java:4734)
    java.awt.Component.repaint(Component.java:3103)
    javax.swing.text.JTextComponent.setEditable(JTextComponent.java:1782)
    javax.swing.text.JTextComponent.<init>(JTextComponent.java:303)
    javax.swing.JTextField.<init>(JTextField.java:212)
    javax.swing.JTextField.<init>(JTextField.java:153)
    org.odftoolkit.simple.table.Cell.optimizeCellSize(Cell.java:2488)
    org.odftoolkit.simple.table.Cell.setDisplayTextContent(Cell.java:960)
    org.odftoolkit.simple.table.Cell.setStringValue(Cell.java:1091)
    com.silverpeas.kmelia.export.ODTDocumentTextTranslator.translateTables(ODTDocumentTextTranslator.java:96)
    com.silverpeas.kmelia.export.ODTDocumentTextTranslator.translate(ODTDocumentTextTranslator.java:83)
    com.silverpeas.kmelia.export.ODTDocumentBuilder.translate(ODTDocumentBuilder.java:213)
    com.silverpeas.kmelia.export.ODTDocumentBuilder.buildFrom(ODTDocumentBuilder.java:177)
    com.silverpeas.kmelia.export.KmeliaPublicationExporter.export(KmeliaPublicationExporter.java:104)
    com.stratelia.webactiv.kmelia.control.KmeliaSessionController.generateDocument(KmeliaSessionController.java:711)
    com.stratelia.webactiv.kmelia.servlets.KmeliaPublicationExportServlet.exportInDocument(KmeliaPublicationExportServlet.java:97)
    com.stratelia.webactiv.kmelia.servlets.KmeliaPublicationExportServlet.service(KmeliaPublicationExportServlet.java:60)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    com.silverpeas.whitePages.filters.ComponentRequestRouterFilter.doFilter(ComponentRequestRouterFilter.java:96)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de JBoss Web/3.0.0-CR2.

Le serveur fonctionne en runlevel 2, le service libreoffice fonctionne bien avec le même nom d'utilisateur que pour le portail :

root     15182     1  0 02:03 ?        00:00:00 /usr/lib/libreoffice/program/soffice.bin -headless -nodefault -accept=socket,host=localhost,port=8100;urp

Mis à jour par Emmanuel Hugonnet il y a plus de 12 ans

Bonjour,
Ilsemblerait que vous ayez lancé silverpeas avec un user via une connexion SSH qui definit la variable DISPLAY. J'imagine que le serveur X ne tourne pas ou plus sur le port
localhost:10.0.
Silverpeas et LibreOffice sont configurés pour s'exécuter en mode HEADLESS (à savoir sans display, mais avec les bibliothèques X présentes).
Pourriez-vous editer le script de démarrage de Silverpeas pour y ajouter l'instruction :
unset DISPLAY
cela devrait supprimer la variable d'environnement DISPLAY et permettre à Silverpeas de fonctionner en mode HEADLESS correctement.

Mis à jour par Miguel Moquillon il y a plus de 12 ans

Ce problème vient du fait que la JVM cherche un serveur X avec lequel se connecter lors des opérations de construction d'un document à partir des données d'une publication.
Et au vue de la trace :

Can't connect to X11 window server using 'localhost:10.0'

ceci ressemble fort à une valorisation de la variable d'environnement DISPLAY lors d'une connexion SSH (la valeur 'localhost:10.0' est typique d'une connexion SSH avec serveur X déporté).

En gros, vous avez démarré Silverpeas dans un shell SSH avec serveur X déporté. Pour palier à ce problème, deux solutions possibles :
  • la solution la plus adéquate est de mettre le paramètre X11Forwarding à false dans le fichier de configuration /etc/ssh/sshd_config du serveur sur lequel tourne Silverpeas.
  • une autre solution serait d'insérer la ligne unset DISPLAY au début du script de démarrage de Silverpeas $SILVERPEAS_HOME/bin/silverpeas_start_jboss.sh.

Mis à jour par Emmanuel GRANGE il y a plus de 12 ans

  • Statut changé de New à Closed
  • % réalisé changé de 0 à 100

Excellent !

Ca marche nickel
Merci à tous les 2.

Actions

Formats disponibles : Atom PDF