sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sdx-users] Cannotissuedata manipulation statementswith executeQuery


From: Malo Pichot
Subject: Re: [sdx-users] Cannotissuedata manipulation statementswith executeQuery
Date: Fri, 05 Sep 2008 13:52:13 +0200
User-agent: Thunderbird 2.0.0.16 (X11/20080707)

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"
> <address@hidden>
> To: <address@hidden>
> 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" <address@hidden>
> To: <address@hidden>
> 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" <address@hidden>
>>> To: <address@hidden>
>>> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]