en attendant la décision d'un upgrade. Dans le cas où il intéresse d'autres j'ajoute le code ici.
Jos----- Original Message ----- From: "Malo Pichot" <[EMAIL PROTECTED]>
To: <[email protected]> Sent: Friday, September 05, 2008 1:52 PMSubject: Re: [sdx-users] Cannotissuedata manipulation statementswith executeQuery
Bonjour, Une solution est de modifier uniquement la ou les classes qui vous intéressent, voire récupérer la source de la classe AbstractJDBCDatabase de SDX 2.3 + la source de la classe chargé du SGBD qui vous intéresse, les compiler dans votre environnement (version de JVM) et placer les fichiers .CLASS résultant dans $WEBAPP/WEB-INF/classes/fr/gouv/... Ca vous parle ? C'est la manière "propre" de surcharger des classes Java dans Cocoon. Au redémarrage du serveur, ces classes seront prises en compte, surchargeant celles que la JVM pourraient trouver dans $WEBAPP/WEB-INF/lib. A bientôt, Malo Jos Snellings a écrit :
Bonjour, Je viens de regarder le code de la version 2.2.1, qui est en production chez nous. Brève description: - pour libérer l'application de l'usage de HSQL, je fais le nécessaire (adaptation de application.xconf entre autres) Ca a l'air de marcher, néanmoins: - à la mise à jour d'un document / ajout d'un nouveau document, le logiciel lève un exception, dont le stack trace: java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). at fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase.delete(AbstractJDBCDatabase.java:254) at fr.gouv.culture.sdx.documentbase.AbstractDocumentBase.deletePhysicalDocument(AbstractDocumentBase.java:535) at fr.gouv.culture.sdx.documentbase.SDXDocumentBase.delete(SDXDocumentBase.java:506) Et effectivement, dans la source, je retrouve: try { ps = conn.prepareStatement(queryString); ps.setString(COLUMN_PARAM_INDEX_FIELD_ID, entityId); endoit signalé => ps.executeQuery(); deleteEntityFromCache(entityId); } catch (SQLException e) { Donc, que faire? Je constate que AbstractJDBCDatabase a été reécrit dans les versions ultérieures. Upgrade vers sdx 2.3 (avec tous les risques, car, je n'ai pas les budgets pour effectuer l'upgrade) ou supporter des corruptions? Jos ----- Original Message ----- From: "Jos Snellings" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, August 13, 2008 10:11 AM Subject: Re: [sdx-users] Cannotissuedata manipulation statementswith executeQuery Voici la version: SDX - version:2.2.1, build:2004111001. Donc, excusez-moi, ce n'était pas exactement version 2.2.1. Jos ----- Original Message ----- From: "Malo Pichot" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Wednesday, August 13, 2008 9:53 AM Subject: Re: [sdx-users] Cannot issuedata manipulation statementswith executeQuery OK. Mon message est parti trop vite :o) Je voulais ajouter que la méthode impliquée ne fait pas de update, insert ou delete ; elle construit seulement un requête SQL et termine sur un execute(). Malo Pichot a écrit :Bonjour, Je suis ennuyé : je viens de regarder le code de la 2.2 sur la classe impliquée dans la StackTrace et la ligne 517 pointe sur du vide :-( fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase.search(AbstractJDBCDatabase.java:517) Jos Snellings a écrit :Bonjour, C'est bien la version sdx 2.2 que j'utilise. Il est quand-même bizarre que sdx utiliserait des update,insert,delete lors d'un appel de UserDatabase.getMembers() ... Je dispose bien d'un exemple d'installation où ce problème ne se manifeste pas, donc il faut que je creuse le pb. Probablement de ma faute. Néanmoins, si quelque chose d'intéressant se manifeste je le communique. Merci, Jos ----- Original Message ----- From: "Malo Pichot" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Tuesday, August 12, 2008 10:24 AM Subject: Re: [sdx-users] Cannot issue data manipulation statementswith executeQuery Bonjour, Quelle version de SDX utilisez-vous ? Je viens de tester avec un Mysql 5.0 : la syntaxe fonctionne parfaitement. Je pense plutôt du côté des données elle-même. Il faudrait donc regarder dans la base SQL et voir ce qu'elle contient. Jos Snellings a écrit :Bonjour, Voilà un type d'erreur que je n'avais pas attendu: ERROR (2008-08-09) 08:18.32:380 [sdx.framework.inventaris] (/sdx/inventaris/beheer/accounts.xsp) TP-Processor3/SDXException: There was a problem searching the database with the id, "sdxuserdatabase". java.sql.SQLException: Can not issue data manipulation statements with executeQuery(). at fr.gouv.culture.sdx.exception.SDXException.log(SDXException.java:115) at fr.gouv.culture.sdx.exception.SDXException.<init>(SDXException.java:103) at fr.gouv.culture.sdx.utils.database.AbstractJDBCDatabase.search(AbstractJDBCDatabase.java:517) at fr.gouv.culture.sdx.user.UserDatabase.getMembers(UserDatabase.java:216) at fr.gouv.culture.sdx.application.Application.getMembers(Application.java:1295) at org.apache.cocoon.www.inventaris.beheer.accounts_xsp.generate(/usr/local/jakarta-tomcat-5.5.7/work/Catalina/localhost/sdx/cocoon-files/org/apache/cocoon/www/inventaris/beheer/accounts_xsp.java:1699) Quelque part il y a un syntaxe qui ne passe pas. J'utilise mysql 5. Ce ne devrait pas être un problème, oui? voilà ce que dit 'mysql --version': Ver 14.12 Distrib 5.0.51, for sun-solaris2.8 A bientôt, Jos
_______________________________________________ sdx-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/sdx-users
AbstractJDBCDatabase.java
Description: Binary data
_______________________________________________ sdx-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/sdx-users
