You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by "SANSONE, AARON M [Non-Pharmacia/1000]" <aa...@monsanto.com> on 2002/02/11 23:51:57 UTC
Cocoon 2 generated SAX Exception
All,
I'm running into a reoccurring problem in pipeline processing where I get a
SAX Exception. It seems to happen when I place a DOM based transformer in
the pipeline after a series of SAX Transformations. However, if a manually
serialize the file and create a test pipeline that reads the file in as a
generator, the test pipeline works.
>From the sitemap:
<map:match pattern="showTree">
<map:generate type="file" src="sql/getMatrix.xml"/>
<map:act type="request">
<map:parameter name="parameters"
value="true"/>
<map:transform type="sql">
<map:parameter
name="use-connection" value="fp"/>
<map:parameter
name="show-nr-of-rows" value="false"/>
<map:parameter name="crop"
value="{cropCode}"/>
<map:parameter
name="username" value="{../../username}"/>
</map:transform>
<map:transform type="xslt"
src="stylesheets/matrixSQLToXML.xsl"/>
<map:transform type="xslt"
src="stylesheets/matrixAddSelf.xsl"/>
<map:transform
type="matrixTransformer"/><!--This is where SAX Exception occurs-->
<map:select type="parameter">
<map:parameter
name="parameter-selector-test" value="{exportType}"/>
<map:when
test="xml">
<map:serialize type="xml"/>
</map:when>
<map:otherwise>
<map:serialize type="svg2jpeg"/>
</map:otherwise>
</map:select>
<map:serialize type="xml"/>
</map:act>
</map:match>
Here is the stub for the matrixTransformer. TreeAnalysis returns an SVG-XML
Document. The entire document must be available for the runAnalysis method
to work properly:
import org.apache.cocoon.transformation.AbstractDOMTransformer;
import org.w3c.dom.Document;
import TreeAnalysis;
public class MatrixTransformer extends AbstractDOMTransformer {
TreeAnalysis treeAnalysis;
protected Document transform(Document doc) {
treeAnalysis = new TreeAnalysis();
log.debug("matrixTransformer START");
Document svgDocument = treeAnalysis.runAnalysis(doc);
log.debug("matrixTransformer END");
return svgDocument;
}
}
Here is the exception from the cocoon log. The debug logs from the
MatrixTransformer class are never written.
org.apache.cocoon.ProcessingException: Could not read resource file:
/C:/Source/web/sql/getMatrix.xml: java.lang.RuntimeException:
org.xml.sax.SAXException: Invalid state
at
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:115)
at
org.apache.cocoon.components.pipeline.AbstractEventPipeline.process(Abstract
EventPipeline.java:106)
at
org.apache.cocoon.components.pipeline.AbstractStreamPipeline.process(Abstrac
tStreamPipeline.java:140)
at
org.apache.cocoon.www.sitemap_xmap.wildcardMatchN40021F(sitemap_xmap.java:36
71)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1602)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1530)
at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:114)
at org.apache.cocoon.Cocoon.process(Cocoon.java:514)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1416)
at
allaire.jrun.session.JRunSessionService.service(../session/JRunSessionServic
e.java:1082)
at
allaire.jrun.servlet.JRunSE.runServlet(../servlet/JRunSE.java:1270)
at
allaire.jrun.servlet.JRunRequestDispatcher.forward(../servlet/JRunRequestDis
patcher.java:89)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1552)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1542)
at
allaire.jrun.servlet.JvmContext.dispatch(../servlet/JvmContext.java:364)
at allaire.jrun.http.WebEndpoint.run(../http/WebEndpoint.java:115)
at allaire.jrun.ThreadPool.run(../ThreadPool.java:272)
at allaire.jrun.WorkerThread.run(../WorkerThread.java:75)
java.lang.RuntimeException: org.xml.sax.SAXException: Invalid state
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1111)
at
org.apache.cocoon.components.parser.XercesParser.parse(XercesParser.java:78)
at
org.apache.cocoon.components.source.URLSource.toSAX(URLSource.java:327)
at
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:109)
at
org.apache.cocoon.components.pipeline.AbstractEventPipeline.process(Abstract
EventPipeline.java:106)
at
org.apache.cocoon.components.pipeline.AbstractStreamPipeline.process(Abstrac
tStreamPipeline.java:140)
at
org.apache.cocoon.www.sitemap_xmap.wildcardMatchN40021F(sitemap_xmap.java:36
71)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1602)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1530)
at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:114)
at org.apache.cocoon.Cocoon.process(Cocoon.java:514)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1416)
at
allaire.jrun.session.JRunSessionService.service(../session/JRunSessionServic
e.java:1082)
at
allaire.jrun.servlet.JRunSE.runServlet(../servlet/JRunSE.java:1270)
at
allaire.jrun.servlet.JRunRequestDispatcher.forward(../servlet/JRunRequestDis
patcher.java:89)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1552)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1542)
at
allaire.jrun.servlet.JvmContext.dispatch(../servlet/JvmContext.java:364)
at allaire.jrun.http.WebEndpoint.run(../http/WebEndpoint.java:115)
at allaire.jrun.ThreadPool.run(../ThreadPool.java:272)
at allaire.jrun.WorkerThread.run(../WorkerThread.java:75)
java.lang.RuntimeException: org.xml.sax.SAXException: Invalid state
at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1111)
at
org.apache.cocoon.components.parser.XercesParser.parse(XercesParser.java:78)
at
org.apache.cocoon.components.source.URLSource.toSAX(URLSource.java:327)
at
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:109)
at
org.apache.cocoon.components.pipeline.AbstractEventPipeline.process(Abstract
EventPipeline.java:106)
at
org.apache.cocoon.components.pipeline.AbstractStreamPipeline.process(Abstrac
tStreamPipeline.java:140)
at
org.apache.cocoon.www.sitemap_xmap.wildcardMatchN40021F(sitemap_xmap.java:36
71)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1602)
at
org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:1530)
at org.apache.cocoon.sitemap.Handler.process(Handler.java:163)
at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:114)
at org.apache.cocoon.Cocoon.process(Cocoon.java:514)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1416)
at
allaire.jrun.session.JRunSessionService.service(../session/JRunSessionServic
e.java:1082)
at
allaire.jrun.servlet.JRunSE.runServlet(../servlet/JRunSE.java:1270)
at
allaire.jrun.servlet.JRunRequestDispatcher.forward(../servlet/JRunRequestDis
patcher.java:89)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1552)
at allaire.jrun.servlet.JRunSE.service(../servlet/JRunSE.java:1542)
at
allaire.jrun.servlet.JvmContext.dispatch(../servlet/JvmContext.java:364)
at allaire.jrun.http.WebEndpoint.run(../http/WebEndpoint.java:115)
at allaire.jrun.ThreadPool.run(../ThreadPool.java:272)
at allaire.jrun.WorkerThread.run(../WorkerThread.java:75)
When I manually serialize the file as XML and read it as a generator in a
test pipeline, everything works.
<map:match pattern="testShowTree">
<map:generate type="file" src="sql/getMatrix.xml"/>
<map:act type="request">
<map:parameter name="parameters"
value="true"/>
<map:transform type="sql">
<map:parameter
name="use-connection" value="fp"/>
<map:parameter
name="show-nr-of-rows" value="false"/>
<map:parameter name="crop"
value="{cropCode}"/>
<map:parameter
name="username" value="{../../username}"/>
</map:transform>
<map:transform type="xslt"
src="stylesheets/matrixSQLToXML.xsl"/>
<map:transform type="xslt"
src="stylesheets/matrixAddSelf.xsl"/>
<map:serialize type="xml"/>
</map:act>
</map:match>
I manually save these results to a file (i.e. cache/testTree.xml) then use
this pipeline to read it.
<map:match pattern="testTree">
<map:act type="request">
<map:parameter name="parameters"
value="true"/>
<map:generate type="file"
src="cache/testTree.xml"/>
<map:transform type="matrixTransformer"/>
<map:serialize type="svg2jpeg"/>
</map:act>
</map:match>
So the above works, however when I aggregate these two steps, I get the
aforementioned exception.
Any help or guidance will be greatly appreciated.
Thanks,
-Aaron
---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
To unsubscribe, e-mail: <co...@xml.apache.org>
For additional commands, e-mail: <co...@xml.apache.org>