Hi Anna,
 
When you use  <redirect:write file="testWrite.xml">, your XML datas are redirected, so you have to generate other XML datas for your serializer. In your case in error, no XML datas are passed after the transformation.
 
So, in your case, you have to transform AND save your XML datas. i think the best solution is saving these datas in file in an Action, and use this file for transformation.
 
Ludovic
  
----- Original Message -----
Sent: Wednesday, December 18, 2002 8:44 AM
Subject: Re: Writing output of pipeline to a file

Thank you all for answering me, but I still can't manage to do it.
Here is my pipeline:
<map:match pattern="test.html">
    <map:generate src=""/>
    <map:transform src=""/>
    <map:serialize type="xml"/>
<map:match>
 
Here is my writeToFile.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform
 xmlns:fo=http://www.w3.org/1999/XSL/Format xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
 extension-element-prefixes="redirect">
<xsl:output method="xml"/>

 <xsl:template match="/">
 <xsl:copy-of select="*"/>
 <redirect:open file="testWrite.xml"/>
 <redirect:write file="testWrite.xml">
  <xsl:copy-of select="*"/>
 </redirect:write>
 <redirect:close file="testWrite.xml"/>
 </xsl:template>
</xsl:stylesheet>
 
When I am running this, I get the following error message from the Cocoon:

type fatal

message Exception in HTMLGenerator.generate()

description org.apache.cocoon.ProcessingException: Exception in HTMLGenerator.generate(): java.lang.NullPointerException

sender org.apache.cocoon.servlet.CocoonServlet

source Cocoon servlet

request-uri

If I remove all the redirect: lines, then I get the serialized input file, so the input is OK, obviously,

I have some problems with this redirect:

Can anybody please tell me what's wrong?

Thank you very much for help.

Anna

 

----- Original Message -----
Sent: Tuesday, December 17, 2002 4:36 PM
Subject: Re: Writing output of pipeline to a file

First, i had just to save it (not to send the result file to the client). I did it in a stylesheet like this :
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform
 xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
 extension-element-prefixes="redirect">
 <xsl:output method="xml" encoding="ISO-8859-1"/>
 <xsl:template match="/">
 <redirect:write file="{$path}">
  <xsl:copy-of select="*"/>
 </redirect:write>
 <TEXTE>output for the client</TEXTE>
 </xsl:template >
</xsl:stylesheet>
But there was problems with some configuration, so finally i did it in my Action who had to generate the XML.
 
If you have to duplicate your XML stream, one for saving, another for the client, i think you have to do this in an action. It generates the XML file and this one is next transformed/serialized.
 
<map:match pattern="some.html">
    <map:act type="YourAction">
    <map:generate src=""/>   
    <map:transform src=""/>
    <map:serialize type="html"/>
</map:match>
 
Ludovic
----- Original Message -----
Sent: Tuesday, December 17, 2002 3:09 PM
Subject: Re: Writing output of pipeline to a file

Hi Ludovic. Thank you for answering.
Can you say what do you do to save this XML file?
I mean, if I have the following pipeline:
<map:match pattern="some.html">
    <map:generate src=""/>
    <map:transform src=""/>
    <map:serialize type="xml"/>
</map:match>
this pipeline produces an xml file. What should I use in order to save this file as "some.xml".
 
Sorry for asking almost exactly the same, I just didn't understood from you answer what should I do.
Thank you very much for help.
 
Anna
----- Original Message -----
Sent: Tuesday, December 17, 2002 4:03 PM
Subject: Re: Writing output of pipeline to a file

Hi Anna,
 
I had this problem and didn't find a solution for caching the output of the pipeline to perform an OutputAction as saving in a file. Finally i chose to save the XML, and to perfom the transformation/serialization when a request need the transformed file. It supposes that the transformers are not modified.
 
Another solution should be using the CommandLine classes to perform the pipeline in an action but i can't say more about it.
 
Hope a better solution exists...
 
Ludovic
----- Original Message -----
Sent: Tuesday, December 17, 2002 2:19 PM
Subject: Writing output of pipeline to a file

Hello All!
I know that today I ask too many questions, but since cocoon is new to me,
sometimes I don't even know where to look for the information, so you are my only help.
Thanks for everyone who took time to answer my questions. Here is another one:
 
At the end of the pipeline the result file is output to the browser.
I need the result file also to be saved in the file on my hard drive.
How can I do this?
I read about the SourceWritingTransformer, but I understood that I can write <source:write> tag in xml only, not in xsl.
 
Or maybe I can use it to do what I need, and I just don't know how?
Please tell me.
 
Thank you very much for your help.
 
Anna

Reply via email to