Pierre Attar wrote:
// since the result is dumped to the filesystem we need to
send smth. to the browser
// to make it happy. So let's send just a usual .txt file with
OK message
cocoon.sendPage("c:\\temp\\yes.txt",null) ;
ça ne me semble pas correct, un sendPage est utilisé pour envoyer des
données produites par un pipeline.
En fait, ca fonctionne plutôt bien et le sendPage se transforme en une
sorte de "reader".
Ca marche vraiment? Parce qu'en interne, cocoon.sendPage("toto") fait un
redirect sur "cocoon:/toto", et crée donc une nouvelle requête qui doit
être résolue par la sitemap.
} catch( ex ) {
cocoon.log.error(ex);
// Smth. went wrong. Sending a error.txt file to the browser
//cocoon.sendPage("error.txt", null);
A mon avis, c'est par ici que l'on passe car
cocoon.sendPage("c:\\temp\\yes.txt",null) ; doit renvoyer une
exception. Ainsi, on se retrouve dans ce catch ou aucune donnée n'est
renvoyée (pas de sendPage) d'ou l'exception.
Oui, c'est exactement cela qui se passait. Merci pour le conseil, des
fois on a le nez dans le guidon et on ne voit pas plus loin que le
bout de son nez.
En fait, il fallait comprendre où sont les message de debug de
flowscript et tout devenait plus lumineux.
Au passage, la vraie erreur était dans mon XSLT qui utilisait des
document() avec des path qui n'étaient pas ré-interprétés par cocoon.
J'ai bien compris, en lisant
http://cocoon.apache.org/2.0/faq/faq-xslt.html#faq-6
, que pour les concepteurs de cocoon, il ne fallait pas utiliser la
fonction document() de XSLT.
Attention, c'est la doc de la version 2.0 qui est bien ancienne. Ca a
été un sujet controversé (les partisans du "l'aggrégation doit passer
par Cocoon" contre les "c'est bien pratique et apporte les protocoles
Cocoon au standard").
Au final donc, document() utilise bel et bien les protocoles Cocoon.
Attention toutefois : conformément à la spécification XSLT, les chemins
relatifs sont interprétés relativement à l'emplacement de la XSLT.
Ca me gène quand même un peu car ca fait trop une position
dictatoriale de type : "j'interprète ce qui me parait bon ou pas dans
un standard" ! Ca me gène d'autant plus que XSLT est quand même le
coeur du métier de cocoon et que se permettre de ne pas implémenter le
standard coeur de métier peut permettre des dérivations de ce type un
peu partout ailleurs.
Je trouve vraiment que l'on souffre beaucoup du marketing d'éditeurs
de logiciels commerciaux connus qui disent "oui je fais du XML mais
finalement, à ma sauce" pour reproduite la même chose ici.
Houla :-)
Dans tous les cas, si cocoon garde cette position, ca vaudrait le coup
de :
- mieux "catcher" les erreurs XALAN liées à cette utilisation car
c'est fragile et un développeur XSLT fait, a priori, ce que le
standard XSLT défini car c'est ce qu'il connait, de façon indépendante
des outils.
C'est fait dans la version courante (dans subversion) et arrivera avec
la 2.1.8 prévue pour octobre (voir aussi [1]).
- mieux mettre en avant cette limitation dans la doc XSLT-cocoon.
Elle n'existe plus !
Voilà donc un mail de quelqu'un un peu énervé par le fait d'avoir
cherché si longtemps une erreur qui est liée au non respect des
standards. C'est pas si grave, cocoon continuera à m'intéresser,
vraiment, dans mes projets.
Bon, ben j'espère que cette réponse va te réconcilier avec Cocoon :-)
Sylvain
[1] http://www.anyware-tech.com/blogs/sylvain/archives/000210.html
--
Sylvain Wallez Anyware Technologies
http://people.apache.org/~sylvain http://www.anyware-tech.com
Apache Software Foundation Member Research & Technology Director
---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]