[GeoNetwork-users-fr] Affichage de la pile d'erreurs dans jeeves.xlink.processor

Bonjour,

je rencontre qqs problèmes lors de l'ajout d'éléments liés via xlink, ca marche correctement pour l'ajout de contacts ou de référentiels, mais ca n'ajoute rien lorsque j'essaie d'ajouter un mot clé venant d'un thesaurus.
En essayant de débugguer, je me suis rendu compte que la pile d'appel n'était pas correctement affichée dans xlink.processor :

2009-08-24 08:25:01,111 ERROR [jeeves.xlink.Processor] -

Le diff suivant fixe au moins l'affichage de la stacktrace pour moi, maintenant il me reste a analyser cette stacktrace..

2009-08-24 09:10:58,403 ERROR [jeeves.xlink.Processor] - org.apache.jcs.access.exception.InvalidArgumentException: Value
  must not be null
         at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:269)
         at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:249)
         at jeeves.xlink.Processor.resolveXLink(Processor.java:234)
         at jeeves.xlink.Processor.searchXLink(Processor.java:125)
         at jeeves.xlink.Processor.searchXLink(Processor.java:187)
         at jeeves.xlink.Processor.processXLink(Processor.java:71)
....

Chose étrange, cette exception est levée lors de l'ajout de contacts/référentiels/mots clés, donc ca n'a pas l'air lié au fait que l'ajout de mot clé ne marche pas (un élément est ajouté au xml, mais il ne contient pas le mot clé)

Une idée ?

--
Cdlt,
Landry Breuil
Administrateur de données du CRAIG

(attachments)

jeeves-print-stacktrace.diff (1.34 KB)

Landry Breuil a écrit :

Bonjour,

je rencontre qqs problèmes lors de l'ajout d'éléments liés via xlink, ca marche correctement pour l'ajout de contacts ou de référentiels, mais ca n'ajoute rien lorsque j'essaie d'ajouter un mot clé venant d'un thesaurus.
En essayant de débugguer, je me suis rendu compte que la pile d'appel n'était pas correctement affichée dans xlink.processor :

2009-08-24 08:25:01,111 ERROR [jeeves.xlink.Processor] -

Le diff suivant fixe au moins l'affichage de la stacktrace pour moi, maintenant il me reste a analyser cette stacktrace..

2009-08-24 09:10:58,403 ERROR [jeeves.xlink.Processor] - org.apache.jcs.access.exception.InvalidArgumentException: Value
must not be null
        at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:269)
        at org.apache.jcs.access.CacheAccess.put(CacheAccess.java:249)
        at jeeves.xlink.Processor.resolveXLink(Processor.java:234)
        at jeeves.xlink.Processor.searchXLink(Processor.java:125)
        at jeeves.xlink.Processor.searchXLink(Processor.java:187)
        at jeeves.xlink.Processor.processXLink(Processor.java:71)
....

Chose étrange, cette exception est levée lors de l'ajout de contacts/référentiels/mots clés, donc ca n'a pas l'air lié au fait que l'ajout de mot clé ne marche pas (un élément est ajouté au xml, mais il ne contient pas le mot clé)

Problème identifié :

l'ajout de mot clé n'utilise pas exactement la même méthode que l'ajout de contact/référentiel :
- pour un référentiel ou un contact, l'url xlink générée est correcte (http://localhost:8180/geonetwork/srv/en/contacts.search?id=… ou le début de l'url vient de la configuration de geosource, valeurs serveur et port) - je n'arrive pas a trouver ou elle est généree, mais cette url est accessible par geosource.

- pour un mot clé, l'url générée utilise la valeur host de window.location en javascript (scripts/ed.js, ligne 256) : http://192.168.1.27:8180/geonetwork/srv/fr/xml.keyword.get?thesaurus=
-> cette url n'est pas accessible par geosource, qui ne connait pas 192.168.1.27.

il y'a d'ailleurs un commentaire relatif au "probleme" :
// FIXME : Should we use location or Env variables to define xlink URL?

Ca peut paraitre être pas grand chose, mais dans ma configuration, geosource tourne dans une machine virtuelle, et est donc derrière un reverse proxy, donc l'url présentée au navigateur est différente de l'url réelle. Si l'url généree utilisait les valeurs de host:port configurées dans geosource, tout irait bien, mais je ne sais pas comment transmettre ces valeurs au script js qui génère l'url.

J'ai réussi a temporairement contourner le problème, mais la solution n'est pas très propre...

--
Cdlt,
Landry Breuil
Administrateur de données du CRAIG