Hi all, I want to be able to parse a java string to an xml representation in a XSP. Looking at the source code for the StreamGenerator (which takes a http-post stream) i have written the following code to parse a xml string in xsp:
Parser parser = null; try { org.xml.sax.InputSource inputSource = new org.xml.sax.InputSource( new StringReader(xmldata) ); this.getLogger().debug("Looking up parser"); parser = (Parser)this.manager.lookup(Parser.ROLE); parser.setContentHandler(this.contentHandler); parser.setLexicalHandler(this.lexicalHandler); parser.parse(inputSource); } catch (Exception ex) { ex.printStackTrace(); this.getLogger().debug(ex.getMessage()); } finally { if (parser != null) { this.getLogger().debug("Releasing parser"); this.manager.release((Component)parser); } } Where xmldata is a string containing the xml data in plain ASCII. Okay, this works, i can serialize the data generated. Problem is that the moment i add a transform after the generate of this XSP page in the sitemap I get a null pointer exception in the XSP. The xsp exception seems to be raised by the last instruction in the generated XSP java class: this.contentHandler.endDocument(); Gives the following stacktrace: Original exception : java.lang.RuntimeException: java.lang.NullPointerException at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3174) at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerH andlerImpl.java:433) at org.apache.cocoon.xml.AbstractXMLPipe.endDocument(AbstractXMLPipe.java:48) at org.apache.cocoon.www.file_.C_.Programming.jakarta_tomcat_4_0_1.webapps.coco on.athena.course_xsp.generate(course_xsp.java:153) at org.apache.cocoon.generation.ServerPagesGenerator.generate(ServerPagesGenera tor.java:224) at org.apache.cocoon.components.pipeline.CachingEventPipeline.process(CachingEv entPipeline.java:210) at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingS treamPipeline.java:358) at org.apache.cocoon.www.file_.C_.Programming.jakarta_tomcat_4_0_1.webapps.coco on.athena.sitemap_xmap.wildcardMatchN400028(sitemap_xmap.java:471) at org.apache.cocoon.www.file_.C_.Programming.jakarta_tomcat_4_0_1.webapps.coco on.athena.sitemap_xmap.process(sitemap_xmap.java:342) at org.apache.cocoon.www.file_.C_.Programming.jakarta_tomcat_4_0_1.webapps.coco on.athena.sitemap_xmap.process(sitemap_xmap.java:294) at org.apache.cocoon.sitemap.Handler.process(Handler.java:171) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:115) at org.apache.cocoon.www.sitemap_xmap.wildcardMatchN400244(sitemap_xmap.java:34 49) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:2707) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java:2636) at org.apache.cocoon.sitemap.Handler.process(Handler.java:171) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java:115) at org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java:144) at org.apache.cocoon.Cocoon.process(Cocoon.java:608) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:793) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:201) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170 ) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 64) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :163) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5 66) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java: 1011) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106 ) at java.lang.Thread.run(Thread.java:484) With trial and error i have found that the parser.parse(inputSource) command is the source of this problem, but it also fullfills my wish to be able to parse a string at runtime. Has anyone an idea what I'm doing wrong and maybe a solution? Thanks, Anton Jansen --------------------------------------------------------------------- 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: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>