Recherche
Retrouvez dans cette page toutes les questions et informations utiles à l'installation, à l'exploitation et à l'utilisation de ESUP-ECM :
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
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 :
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.
SELECT * FROM nuxeo_storage.hierarchy h WHERE h.`primarytype`='Workspace'
delete FROM nuxeo.LocalThemeConfig WHERE `docId`='d821ad94-6bdf-4dd8-8a44-a4b5538918e5'
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.
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
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)
Si le problème persiste même après suppression du plugin, alors :
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.
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.
cd <rep_nuxeo_52>/nuxeo-shell; ./nxshell.sh \-h 127.0.0.1
cd default-domain/workspaces
view tmp -> 4cb62b5b-7b6e-432a-8d46-76271d125ea1
script --file <rep_esup_ecm>/nuxeo-shell-scripts/modifyPermissions.js 4cb62b5b-7b6e-432a-8d46-76271d125ea1
script --file <rep_esup_ecm>/nuxeo-shell-scripts/modifyPermissions.js 4cb62b5b-7b6e-432a-8d46-76271d125ea1 admin Everything
(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.