Recherche

Sommaire

Skip to end of metadata
Go to start of metadata

Retrouvez dans cette page toutes les questions et informations utiles à l'installation, à l'exploitation et à l'utilisation de ESUP-ECM :

Failed to render resource avec webengine

Avec Webengine et notamment esupWebengineVersion vous pouvez avoir ce message :

Etat HTTP 500 - org.nuxeo.ecm.webengine.WebException: Failed to render resource at
org.nuxeo.ecm.webengine.WebException.wrap(WebException.java:171) at
org.nuxeo.ecm.webengine.server.resteasy.WebEngineServlet.service(WebEngineServlet.java:211) at
org.nuxeo.ecm.webengine.server.resteasy.WebEngineServlet.service(WebEngineServlet.java:158) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at
.../...

En y regardant de plus près on voit que l'erreur est en fait due à :

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at
java.lang.String.substring(String.java:1937) at
org.jboss.resteasy.plugins.delegates.MediaTypeHeaderDelegate.parse(MediaTypeHeaderDelegate.java:54)

Cette erreur est généralement due à des entêtes http mal formées via une ancienne version de liveedit de nuxeo.

Pour corriger le problème il faut faire une mise à jour de liveedit

log-slave-updates must use row-based binary logging

En MySQL 5.1 si vous utilisez un mode log binaire alors vous pouvez avoir cette erreur :

Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events

Il existe 2 solutions :

  • Modifier la configuration de votre serveur pour ajouter l'option : binlog_format = ROW
  • S'il n'est pas possible de modifier le serveur alors il faut modifier le paramètre db.jdbc.options de ESUP-ECM en le positionnant à ?sessionVariables=binlog_format=ROW
    • Dans ce cas, à partir de MySQL 5.1.29, il faut que l'utilisateur ait le droit SUPER. Ceci même s'il s'agit ici de modifier une variable session (cf. http://bugs.mysql.com/bug.php?id=39106)
      • typiquement : grant SUPER on *.* to user1@"%"; grant SUPER on *.* to user1@"%"; FLUSH PRIVILEGES

Comment rétablir l'habillage d'un workspace ?

Comment rétablir l'habillage d'un workspace si cet habillage ne propose plus l'accès au bouton d'administration ?
Ceci se fait en manipulant la base de données nuxeo.

  • Dans la base nuxeo_storage : Rechercher l'id du workspace en question
    SELECT * FROM nuxeo_storage.hierarchy h WHERE h.`primarytype`='Workspace'
    
  • Dans la base nuxeo : Revenir à l'habillage par défaut en supprimant la ligne correspondant au changement d'habillage
    delete FROM nuxeo.LocalThemeConfig WHERE `docId`='d821ad94-6bdf-4dd8-8a44-a4b5538918e5'
    
    Note : Remplacer 'd821ad94-6bdf-4dd8-8a44-a4b5538918e5' par l'id trouvé avec le premier select

Débrancher CAS

Seulement en ESUP-ECM 1.0. Utiliser le build.properties pour la 1.1 et suivante.

ESUP-ECM est packagé pour fonctionner avec CAS.
N'est pas intégrer dans les .properties du package la possibilité de faire du LDAP seulement.
Néanmoins c'est possible.
Dans esup-ecm-config-plugin/src/main/resources/OSGI-INF/esup-login-contrib.xml il faut changer :

    <!-- configure authentication chain -->
    <extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService" point="chain">
        <authenticationChain>
            <plugins>
                <!--  Keep basic Auth at top of Auth chain to support RSS access via BasicAuth -->
                <plugin>BASIC_AUTH</plugin>
                <plugin>ANONYMOUS_AUTH</plugin>
                <!-- plugin>FORM_AUTH</plugin -->
                <plugin>CAS2_AUTH</plugin>
            </plugins>
        </authenticationChain>
    </extension>

en :

    <!-- configure authentication chain -->
    <extension target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService" point="chain">
        <authenticationChain>
            <plugins>
                <!--  Keep basic Auth at top of Auth chain to support RSS access via BasicAuth -->
                <plugin>BASIC_AUTH</plugin>
                <plugin>ANONYMOUS_AUTH</plugin>
                <plugin>FORM_AUTH</plugin>
                <!-- plugin>CAS2_AUTH</plugin -->
            </plugins>
        </authenticationChain>
    </extension>

Faire ant deploy pour prise en compte.

Erreur "java : command not found"

Si vous avez ce message dans le fichier de log lors du lancement de jbossctl verifier bien que l'utilisateur défini par la variable jboss.user définit une variable JAVA_HOME dans son .bashrc

Erreur "String index out of range: -1"

Si lors de l'accès à une url en nuxeo/site/* vous avez cette erreur :

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1938)
    at org.jboss.resteasy.plugins.delegates.MediaTypeHeaderDelegate.parse(MediaTypeHeaderDelegate.java:54)
    at org.jboss.resteasy.plugins.delegates.MediaTypeHeaderDelegate.fromString(MediaTypeHeaderDelegate.java:16)
    at javax.ws.rs.core.MediaType.valueOf(MediaType.java:173)
    at org.jboss.resteasy.util.MediaTypeHelper.parseHeader(MediaTypeHelper.java:200)
    at org.jboss.resteasy.plugins.server.servlet.ServletUtil.extractAccepts(ServletUtil.java:109)
    at org.jboss.resteasy.plugins.server.servlet.ServletUtil.extractHttpHeaders(ServletUtil.java:72)
    at org.nuxeo.ecm.webengine.server.resteasy.WebEngineServlet.service(WebEngineServlet.java:124)
    at org.nuxeo.ecm.webengine.server.resteasy.WebEngineServlet.service(WebEngineServlet.java:112)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

Vérifiez que vous utilisez bien l'extension navigateur liveedit en version 0.4.6 minimum.

Si le problème persiste même après suppression du plugin, alors :

  • Sous Firefox
    • saisir about:config dans la barre d'adresse
    • rechercher network.http.accept.default
    • supprimer dans valeur la chaine comprise entre virgules (ou une première virgule et la fin de la chaine) commençant par "application/x-nuxeo-liveedit;"

Erreur "Data truncation: Data too long for column 'binarytext' at row 1"

Si vous avez cette erreur avec un nuxeo fonctionnant avec MySQL :
Exception: com.mysql.jdbc.MysqlDataTruncation. message: Data truncation: Data too long for column 'binarytext' at row 1

C'est que la colonne de nom binarytext dans la table fulltext de nuxeo (celle qui contient le contenu textuel de votre document) est trop petite.

Il faut changer son type de text à longtext.

Comment repositionner les droits sur un sous-espace de travail ?

Dans certains cas, il peut être nécessaire de repositionner des droits à la suite d'une manipulation malencontreuse (suppression intempestive de droits par l'administrateur).

Le cas suivant aussi peut arriver:

Sur un sous-workspace tmp, l'utilisateur admin donne les droits de gestion à l'utilisateur toto.
Maintenant toto se connecte, va sur tmp pour enlever les droits hérités: l'utilisateur admin ne peut donc plus accéder à tmp pour gérer les droits sur ce sous-workspace.
L'administrateur n'a d'autre choix que d'utiliser nxshell pour repositionner les droits correctement.

Exemple : ajouter des droits sur le sous-espace de travail tmp 

  1.  utiliser nxshell
    cd <rep_nuxeo_52>/nuxeo-shell; ./nxshell.sh \-h 127.0.0.1
  2. dans nxshell faire :
    1.  se déplacer dans les dossiers 
      cd default-domain/workspaces
    2.  retrouver UID du document : 
      view tmp -> 4cb62b5b-7b6e-432a-8d46-76271d125ea1
  3. ajouter les droits ReadWrite sur le document pour tous ("members") :
    script --file <rep_esup_ecm>/nuxeo-shell-scripts/modifyPermissions.js 4cb62b5b-7b6e-432a-8d46-76271d125ea1
  4. ajouter les droits Everything (gérer) sur le document pour l' administrateur ("admin") :
    script --file <rep_esup_ecm>/nuxeo-shell-scripts/modifyPermissions.js 4cb62b5b-7b6e-432a-8d46-76271d125ea1 admin Everything

Des raisons pour éviter d'utiliser MySQL avec Nuxeo

(Message de nuxeo-dev du 4 mai 2009)

Drawbacks of MySQL when used with Nuxeo:
- loses connections when it decides to,
- poor fulltext support,
- no transactional fulltext tables,
- inefficient ACL checking due to lack of array datatypes,
- no sub-second time datatypes,
- foreign key on delete cascade operations limited to 15 levels deep,
- triggers not activated by cascaded foreign key actions (which we don't use at the moment with MySQL but could prove a big limitation in the future),
- poor query optimizer,
- (not directly nuxeo related) stupid nonstandard syntax, stupid datatypes conversions and lack of proper value checking.
All in all, MySQL should be avoided if you want to keep your sanity, you never know what's going to happen when you do a perfectly normal SQL operations. Please use PostgreSQL instead.

  • No labels