On 10 Feb 2004, at 19:12, Christopher Oliver wrote:

What does the log look like? Your script seeems to log the exception.

OH Boy !!! Was that a dumb mistake, or what ??? !!!

That snippet had been copied partly from XSLT, I had left <xsl:text/> in it !!!
No wonder it did not work!!!

So you were right, the actual error ends up in the flow.log, but not on the screen.

many thanks, and sorry for the waste of time.

regards Jeremy

Chris

Jeremy Quinn wrote:


My sincere appologies .... I sent the wrong script !!!



On 10 Feb 2004, at 18:16, Jeremy Quinn wrote:


On 10 Feb 2004, at 15:39, Christopher Oliver wrote:

What does your flowscript look like? Just a guess, but is it possible you are catching the exception from sendPage*("pipeline-containing-your-template") in your script? That could explain the "generator already set" error (which occurs when you incorrectly call sendPage*() more than once in the same flowscript invocation - i.e. after catching the exception your script "falls through" to the next sendPage*()).

HTH,


Many thanks for your response.
Thing is .... the page works fine without the :

<t:forEach items="#{images}"> ... </t:forEach>

At the moment, I get this error for any problem I have with JXTemplate syntax.

But anyway, here is the flowscript :


function album () {
var factory = cocoon.getComponent (PersistanceFactory.ROLE);
var session = factory.createSession ();
try {
var approot = cocoon.parameters["approot"];
var album = AlbumPeer.load (session, new java.lang.Long (cocoon.parameters["albumid"]), null);
var page = parseInt (cocoon.parameters["page"]);
var size = parseInt (cocoon.parameters["size"]);
if (album != null && !album.isPrivate) {
var nav = pagerNavigation (album.resources.size(), page, size);
if (page > -1 && size > 0 && album.resources.size() > 0) {
var start = page*size;
var end = (page*size) + size;
if (end > album.resources.size()) end = album.resources.size ();
album.resources = album.resources.subList (start, end);
}
cocoon.request.setAttribute ("sitemapURI", cocoon.parameters["sitemapURI"])
cocoon.sendPage (cocoon.parameters["screen"], { album: album, nav: nav, approot: approot });
catch (return) { session.close(); } // the page has finished rendering
} else {
cocoon.sendPage("screen/error", {message: "albums.album.notavailable"});
}
} catch (e) {
cocoon.log.error (e);
cocoon.sendPage("screen/error", {message: "albums.album.notavailable"});
session.close();
} finally {
cocoon.releaseComponent(factory);
}
}





regards Jeremy

Chris

Jeremy Quinn wrote:

I have a set of nested Beans, from with I am trying to extract values using JXTemplate.

album - an Album Bean
    title - String
    text - String
    . . .
    resources - ArrayList of Resource Beans
        artefact - String
        text - String
        images - ArrayList of Image Beans
            image - String
        . . .

Here is part of the Template :

<t:forEach items="#{album/resources}">
<section>
<title>
<a href="../artefacts/work(#{artefact}).html" title="view the full artefact">
<!-- snip -->
</a>
</title>
<p>IMAGES: #{count(images)}</p> <!-- this reports 2 images -->
<t:forEach items="#{images}"> <!-- this throws an exception -->
<a href="../artefacts/image(#{image}).html" title="view information about this image">
<img alt="image: #{image}" src="../images/thumbnail/artefacts/#{image}.jpg"/>
</a><xsl:text>&#160;</xsl:text>
</t:forEach>
<p title="albums.album.commentary" i18n:attr="title">#{text}</p>
</section>
</t:forEach>

This all works fine if I take out the inner 'forEach'.
When I leave it in I get the far from helpful (currently in 2.1.4-dev, generic) Exception:

org.apache.cocoon.ProcessingException: Generator already set. Cannot set generator 'jx' at file:/Users/jerm/Development/Checkouts/someproject/webapp/ album.xmap: 37:62
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.se tG ene rator(AbstractProcessingPipeline.java:243)
at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessin gP ipe line.setGenerator(AbstractCachingProcessingPipeline.java:158)

etc.

What I do not understand is that this works :
    #{count(images)}
But this throws exceptions :
    <t:forEach items="#{images}">

Any suggestions?
I have tried all of the variations in the documentation and User's List that I could find.

thanks

regards Jeremy




-------------------------------------------------------------------- -
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Attachment: smime.p7s
Description: S/MIME cryptographic signature



Reply via email to