You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@lenya.apache.org by Victoria Vitaver <vi...@tt.com.au> on 2005/06/14 03:57:48 UTC

writing to file problem

Hi,

I am attempting to create a usecase which will give a user a form to 
fill out, and save their response as an XML file. My problem is that 
things 'seem' to work .. but it doesn't seem to save the file anywhere. 
Is Lenya doing something dynamically that I am not aware of (or am I 
simply doing something stupid :p)?

I'm not quite sure where the problem is(I know that form.getXML() does 
give me what I need though), and am not sure where to ideally save files 
under lenya  (ie would /lenya/{publication-name}/{myFileFolder} be a 
good place?)

Any hints to what I could be doing wrong would be greatly appreciated!

Thanks,

Vica

------------------------------------------------------------------
usecase-registration.xmap:

...
  <map:pipeline>
	<map:match pattern="*.continue">
	    <map:call continuation="{1}"/>
	</map:match>
	
	<map:match pattern="**/*.continue">
	    <map:call continuation="{2}"/>
	</map:match>
	
	<map:match pattern="registration-display-pipeline">
	    <map:generate src="forms/registration_template.xml"/>
	    <map:call resource="style-cms-page"/>
	</map:match>	
	
	<map:match pattern="registration-success-pipeline.jx">
	    <map:generate type="jx" src="forms/registration_success_jx.xml"/>
	    <map:serialize/>
	</map:match>	

	<map:match pattern="**">
	    <map:call function="registration">
		 <map:parameter name="documentURI" value="vica_data.xml"/>
	    </map:call>
	</map:match>
     </map:pipeline>
...

-----------------------
registration.js :

cocoon.load("resource://org/apache/cocoon/forms/flow/javascript/Form.js");

function registration()
{
	var form = new Form("forms/registration.xml");
	form.createBinding("binding/registration_bind.xml");
	var documentURI = 
"opt/lenya/jakarta-tomcat-5.0.28/webapps/lenya/lenya/pubs/demo/forms/vica_data.xml"

form.showForm("registration-display-pipeline");
saveToFile(form.getXML(), documentURI);
cocoon.sendPage("registration-success-pipeline.jx", form.getXML());
}

function saveToFile(text, uri)
{
    	var fileWriter;
	try
	{
		fileWriter = new java.io.FileWriter(uri);
		fileWriter.write(text);
		fileWriter.close();
	}
	catch(e)
	{
		print("file not found");
	}
}
----

 
http://devhost:8080/lenya/demo/authoring/index.html?lenya.usecase=registration 
  brings up the form

http://devhost:8080/lenya/demo/authoring/0c543f464d53377e262215401d2f786971696f2f.continue?lenya.usecase=registration
brings up the result

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: writing to file problem

Posted by Victoria Vitaver <vi...@tt.com.au>.
Gregor J. Rothfuss wrote:

> 
> i suggest you add a couple
> 
> cocoon.log.debug() to track down what it is doing. i would also suggest 
> not to use a filewriter, but instead a source. this has the advantage 
> that you can use the same code to write to the fs, a repository or any 
> other location that is accessible via the source resolver:


Thank you for your response :)

Also, on the topic of debugging, is there any way to debug pipelines?

Ie I am currently getting a
'org.apache.cocoon.ProcessingException: Error executing pipeline.: 
java.lang.NullPointerException'

.. but am not sure how to use the stack trace to determine which 
pipeline exactly is the problem (I'm aggregating & redirecting and so 
forth :p).

Do you just have to manually 'take away' bits of the pipeline until you 
find the problem, or is there a better approach?

Thanks,

Vica

---------------------------------
http://devhost:8080/lenya/demo/live/index.html?lenya.usecase=search

full exception chain stacktrace:

org.apache.cocoon.ProcessingException: Error executing pipeline.: 
java.lang.NullPointerException
	at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.handleException(AbstractProcessingPipeline.java:940)
	at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:281)
	at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:483)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:102)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:31)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:93)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at org.apache.cocoon.Cocoon.process(Cocoon.java:608)
	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1123)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.NullPointerException
	at 
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:423)
	at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:270)
	at 
org.apache.cocoon.sitemap.ContentAggregator.generate(ContentAggregator.java:125)
	at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:269)
	... 79 more
java.lang.NullPointerException
	at 
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.java:423)
	at 
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:270)
	at 
org.apache.cocoon.sitemap.ContentAggregator.generate(ContentAggregator.java:125)
	at 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.processXMLPipeline(AbstractCachingProcessingPipeline.java:269)
	at 
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:483)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:120)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.SelectNode.invoke(SelectNode.java:102)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.ContainerNode.invoke(ContainerNode.java:31)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.CallNode.invoke(CallNode.java:93)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
	at 
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
	at 
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
	at 
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
	at 
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
	at org.apache.cocoon.Cocoon.process(Cocoon.java:608)
	at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1123)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
	at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
	at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
	at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
	at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:534)



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Embed javascript in xsl: > problem

Posted by Renaud Richardet <re...@wyona.com>.
Manos,

Thanks for your response.

Emmanouil Batsis wrote:

> Renaud Richardet wrote:
>
>> My problem is that the > sign gets mixed-up as it passes through the 
>> numerous xsl's (at least 4 of them)
>
>
>
> If the source XML has the character in the form of an entity (&gt;) 
> there should be no problem as that is exactly how the XSLTProcessor 
> outputs it (if the output method is XML)

I forgot to say that I tried that. You are right: the XSLT processor 
outputs it as entity. Unfortunately, the javascript doesn't work.

> 2) externalize the javascript in a .js file and put it under /ressources
>
>
> On the other hand, this is the preffered solution ;-)

Yes, that's what I might end up with, but a quickier solution would be 
nice ;-)

Thanks,
Renaud

-- 
Renaud Richardet
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
renaud.richardet@wyona.com                   http://www.wyona.com


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: Embed javascript in xsl: > problem

Posted by Emmanouil Batsis <Em...@eurodyn.com>.
Renaud Richardet wrote:

> My problem is that the > sign gets mixed-up as it passes through the 
> numerous xsl's (at least 4 of them)


If the source XML has the character in the form of an entity (&gt;) 
there should be no problem as that is exactly how the XSLTProcessor 
outputs it (if the output method is XML)


> 2) externalize the javascript in a .js file and put it under /ressources


On the other hand, this is the preffered solution ;-)

Manos

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Embed javascript in xsl: > problem

Posted by Renaud Richardet <re...@gmail.com>.
Bonjour,

I'm trying to embed some javascript in 
${mypub}/lenya/xslt/authoring/create.xsl
There is already some script, which works fine, but now I would like to 
limit the length of the textareas.

This is my try:

function validLength(formField,fieldLabel, maxLength) {
  if (formField.value.length > 3) {
        alert('ohoh!');
    formField.focus();
    return false;
  }
  return true;
}

My problem is that the > sign gets mixed-up as it passes through the 
numerous xsl's (at least 4 of them)

So far, I have 2 solutions, but they don't satisfy me:

1) <TEXTAREA onkeyup="this.value = this.value.slice(0, 20)"></TEXTAREA>

2) externalize the javascript in a .js file and put it under /ressources

Anybody faced this already and has a solution?

Thanks,
Renaud

-- 
Renaud Richardet
Wyona Inc.  -   Open Source Content Management   -   Apache Lenya
renaud.richardet@wyona.com                   http://www.wyona.com


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org


Re: writing to file problem

Posted by "Gregor J. Rothfuss" <gr...@apache.org>.
Victoria Vitaver wrote:

> I am attempting to create a usecase which will give a user a form to 
> fill out, and save their response as an XML file. My problem is that 
> things 'seem' to work .. but it doesn't seem to save the file anywhere. 
> Is Lenya doing something dynamically that I am not aware of (or am I 
> simply doing something stupid :p)?

> function saveToFile(text, uri)
> {
>        var fileWriter;
>     try
>     {
>         fileWriter = new java.io.FileWriter(uri);
>         fileWriter.write(text);
>         fileWriter.close();
>     }
>     catch(e)
>     {
>         print("file not found");
>     }
> }

i suggest you add a couple

cocoon.log.debug() to track down what it is doing. i would also suggest 
not to use a filewriter, but instead a source. this has the advantage 
that you can use the same code to write to the fs, a repository or any 
other location that is accessible via the source resolver:

function writeDoc(doc, pipeline) {
     var resolver = null;
     var source = null;
     var output = null;
     try {
         resolver = 
cocoon.getComponent(Packages.org.apache.excalibur.source.SourceResolver.ROLE);
         source = resolver.resolveURI(doc);
         if (source instanceof 
Packages.org.apache.excalibur.source.ModifiableSource) {
             output = source.getOutputStream();
             cocoon.processPipelineTo(pipeline, {}, output);
             output.close();
         } else {
             cocoon.log.error("Cannot write to " + doc + ": not a 
modifiable source");
         }
     } catch (error) {
         cocoon.log.error("Error getting output stream: " + error);
     } finally {
         if (source != null) resolver.release(source);
         cocoon.releaseComponent(resolver);
         if (output != null) {
             try {
                 output.close();
             } catch (error) {
                 cocoon.log.error("Error closing output stream: " + error);
             }
         }
     }

alternatively, take a look at

http://svn.apache.org/viewcvs.cgi/*checkout*/lenya/trunk/src/webapp/lenya/usecases/edit-document.js?rev=178175

which does something very similar (albeit handing off the actual write 
operation to a java class)

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@lenya.apache.org
For additional commands, e-mail: user-help@lenya.apache.org