Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 14/01/2014 15:16:53

mcollas
Guest
From: Paris
Registered: 06/01/2014
Posts: 8

Erreur de conversion lors de l'import d'Apogée

Bonjour,

voici l'erreur que j'obtiens en essayant d'importer une formation d'Apogée dans ametys-odf.

Une erreur inattendue est survenue : l'import a échoué.
oracle.sql.CLOB.free()V

java.lang.AbstractMethodError: oracle.sql.CLOB.free()V
    at org.ametys.plugins.odfsync.apogee.DefaultApogeeDAO.transformClobToString(DefaultApogeeDAO.java:390)
    at org.ametys.plugins.odfsync.apogee.DefaultApogeeDAO.getAddElements(DefaultApogeeDAO.java:119)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Ci-joint la trace complète.

Il semble que cette erreur se produit chaque fois que la table ELEMENT_ADD a un champ CLOB renseigné.
Est-ce que cette erreur a déjà été corrigée ou doit-on attendre la correction ?
Bien cordialement
MC Collas

Offline

#2 14/01/2014 15:39:46

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Erreur de conversion lors de l'import d'Apogée

Quelle est la version de votre connecteur JDBC oracle (le jar ojdbc-xxx.jar dans le dossier WEB-INF/lib) ?

Cette erreur peut apparaître quand la version 10.x du connecteur est utilisée, si c'est bien le cas, passer à la version 11.x devrait résoudre le problème.

Offline

#3 14/01/2014 18:08:31

mcollas
Guest
From: Paris
Registered: 06/01/2014
Posts: 8

Re: Erreur de conversion lors de l'import d'Apogée

Il n'y a aucun connecteur oracle dans le WEB-INF/lib d'ametys-odf tel qu'il est livré en version de démo.
Nous utilisons oracle 11g. J'ai essayé d'ajouter ojdbc6.jar dans WEB-INF/lib, mais ametys-odf a refusé catégoriquement de démarrer comme ça:

An error has occurred
An error occurred. Please contact the administrator of the application.
Hide details
An error occurred. Please contact the administrator of the application.java.lang.SecurityException: sealing violation: package oracle.jdbc.driver is sealed at java.net.URLClassLoader.defineClass(URLClassLoader.java:234) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:392) at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) at org.ametys.runtime.datasource.DataSourceExtensionPoint.addExtension(DataSourceExtensionPoint.java:61) at org.ametys.runtime.plugin.PluginsManager._loadExtensions(PluginsManager.java:1077) at org.ametys.runtime.plugin.PluginsManager._loadFeatures

Donc j'ai enlevé ce connecteur. Et l'appplication se relance (avec son bug)
A mon avis le connecteur est déjà présent dans les plugins, mais où ? Je ne sais pas quel est celui qui est livré, du coup.

Offline

#4 14/01/2014 18:54:54

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Erreur de conversion lors de l'import d'Apogée

L'application ODF de démo ne contient pas de connecteur oracle car elle importe et synchronise les éléments de l'ODF depuis des fichiers CDM-fr, et pas depuis Apogée.
La bonne version du connecteur est à télécharger à cette adresse :

Votre dernière erreur semble apparaître quand vous avez deux jars de connecteurs oracle dans le classpath.
Les plugins ne "contiennent" pas de librairies, les jars sont placés soit dans le dossier WEB-INF/lib, soit dans le dossier jetty/lib.
Est-ce que vous n'auriez pas soit un connecteur oracle dans un de ces deux dossiers, soit dans un classpath additionnel ?

Offline

#5 15/01/2014 12:50:13

mcollas
Guest
From: Paris
Registered: 06/01/2014
Posts: 8

Re: Erreur de conversion lors de l'import d'Apogée

Bonjour,

si je mets ojdbc6-11.2.0.1.0.jar dans WEB-INF/lib, ça plante encore au lancement d'odf. Ce qui laisse penser à un conflit entre 2 connecteurs différents.
Si je le mets dans jetty/lib, ça ne plante pas au lancement, mais l'erreur avec le clob persiste lors de l'import. Ce qui laisse penser que cet emplacement est ignoré pour le connecteur.
Il doit y avoir quelque part sur mon poste un classpath par defaut vers un autre connecteur, mais je ne sais pas comment le trouver . Je travaille sur mac, en localhost pour le moment.
Je fais des tests sur la version de démo (modifiée) pour vérifier si la connection à Apogée répond à nos espérances.

Offline

#6 16/01/2014 10:56:53

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Erreur de conversion lors de l'import d'Apogée

La documentation de jetty pour les classpaths additionels est ici :
J'imagine que vous n'avez pas modifié le script de démarrage de jetty "start" pour ajouter l'option "-Djetty.class.path", ou modifié le contexte "jetty/contexts/ametys.xml" pour ajouter un Set "extraClasspath".

Du coup, je pencherais aussi pour qu'OS X ajoute un classpath par défaut et que vous ayez un connecteur oracle dans celui-ci. D'après  essayez de regarder dans /Library/Java/Extensions ou ~/Library/Java/Extensions, ou potentiellement dans votre variable d'environnement CLASSPATH.

Offline

#7 16/01/2014 17:46:01

mcollas
Guest
From: Paris
Registered: 06/01/2014
Posts: 8

Re: Erreur de conversion lors de l'import d'Apogée

Je n'ai pas touché au classpath de jetty.
Le lien  ne fonctionne plus, dommage  sad
Dans  /Library/Java/Extensions j'ai bien trouvé un ojdbc5.jar que j'ai renommé en ojdbc5.jar.old pour le désactiver.
J'ai désactivé pareillement tous les connecteurs que j'ai pu essayer dans jetty/lib ou web_inf/lib, mais curieusement la connexion à Apogée se fait quand même, et l'erreur de conversion CLOB est toujours là.
Il doit y avoir un autre connecteur quelque part qui intervient. Mais où. Je précise que je ne suis pas dans l'environnement eclipse, je me contente de lancer le start.sh fourni dans la démo.
Une recherche sur mon PC montre que tous les autres connecteurs oracles sont sagement rangés dans les web_inf/lib de chaque application.

Offline

#8 16/01/2014 18:35:51

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Erreur de conversion lors de l'import d'Apogée

Essayez peut-être de déplacer ojdbc5.jar en-dehors du classpath plutôt que de le renommer ?
Je n'ai pas trop espoir, mais on ne sait jamais...

Offline

Board footer

Powered by FluxBB