You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by "g[R]eK" <gR...@warsztat.pac.pl> on 2003/09/06 19:59:37 UTC

get-xml in ESQL problem

<. Hi users! .>

  I have strange problem with ESQL. I want read xml from database as full xml
  document (not fragment). So I decided to use <esql:get-xml>, it works almost
  fine. 'Almost' because I must insert the xml from database in some tag, the
  root element of xml in database can't be root element in returned document.
  :-(

  My XSP and log are included below.

  This XSP works good:
<?xml version="1.0" encoding="UTF-8"?>
<xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:esql="http://apache.org/cocoon/SQL/v2">
        <text>
                <esql:connection>
                        <esql:pool>warsztat</esql:pool>
                        <esql:execute-query>
                                <esql:query>SELECT * FROM artykuly</esql:query>
                                <esql:results>
                                        <esql:row-results>
                                                <esql:get-xml column="text"/>
                                        </esql:row-results>
                                </esql:results>
                        </esql:execute-query>
                </esql:connection>
        </text>
</xsp:page>

  This XSP:
<?xml version="1.0" encoding="UTF-8"?>
<xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:esql="http://apache.org/cocoon/SQL/v2">
                <esql:connection>
                        <esql:pool>warsztat</esql:pool>
                        <esql:execute-query>
                                <esql:query>SELECT * FROM artykuly</esql:query>
                                <esql:results>
                                        <esql:row-results>
                                                <esql:get-xml column="text"/>
                                        </esql:row-results>
                                </esql:results>
                        </esql:execute-query>
                </esql:connection>
</xsp:page>

  raise exception:
  
DEBUG   (2003-09-06) 19:53.25:402   [core.program-generator] (/cocoon/cvs-local/warsztat/plain/artykuly/get-article.xml) Thread-11/ProgramGeneratorImpl: Got Language Exception
org.apache.cocoon.components.language.LanguageException: Error compiling get_article_template_xml:
ERROR 1 (org\apache\cocoon\www\cvs_local\warsztat\artykuly\get_article_template_xml.java):
...
    if (_esql_query != null) {
      _esql_queries.push(_esql_query);
    }
// start error (lines 306-306) "Unhandled exception type SQLException"
    _esql_query = _esql_connection.createQuery(
// end error
             String.valueOf(""),
             String.valueOf(
      ""
      
...
ERROR 2 (org\apache\cocoon\www\cvs_local\warsztat\artykuly\get_article_template_xml.java):
...
            if (!_esql_connection.getAutoCommit()) {
              _esql_connection.rollback();
            }
          } catch (Exception _esql_exception_N10012_2) {}
// start error (lines 408-408) "Unhandled exception type SQLException"
          throw new RuntimeException("Error executing statement: " + _esql_query.getQueryString() + ": "+_esql_exception_N10012);
// end error
          
    } finally {
        _esql_query.cleanUp();
    }
...
Line 306, column 0: Unhandled exception type SQLException
Line 408, column 0: Unhandled exception type SQLException
        at org.apache.cocoon.components.language.programming.java.JavaLanguage.compile(JavaLanguage.java:236)
        at org.apache.cocoon.components.language.programming.CompiledProgrammingLanguage.load(CompiledProgrammingLanguage.java:208)
        at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.loadProgram(ProgramGeneratorImpl.java:427)
        at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(ProgramGeneratorImpl.java:339)
        at org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java:202)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:381)
        at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:508)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.prepareInternal(AbstractProcessingPipeline.java:520)
        at org.apache.cocoon.components.source.impl.SitemapSource.init(SitemapSource.java:387)
        at org.apache.cocoon.components.source.impl.SitemapSource.<init>(SitemapSource.java:248)
        at org.apache.cocoon.components.source.impl.SitemapSourceFactory.getSource(SitemapSourceFactory.java:99)
        at org.apache.excalibur.source.impl.SourceResolverImpl.resolveURI(SourceResolverImpl.java:247)
        at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
        at org.apache.cocoon.components.CocoonComponentManager.resolveURI(CocoonComponentManager.java:503)
        at org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:513)
        at org.apache.cocoon.environment.AbstractEnvironment.resolveURI(AbstractEnvironment.java:500)
        at org.apache.cocoon.generation.FileGenerator.setup(FileGenerator.java:104)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.setupPipeline(AbstractProcessingPipeline.java:381)
        at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline.setupPipeline(AbstractCachingProcessingPipeline.java:652)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.preparePipeline(AbstractProcessingPipeline.java:508)
        at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(AbstractProcessingPipeline.java:470)
        at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(SerializeNode.java:147)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
        at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:161)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:327)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:309)
        at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
        at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:161)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:327)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:309)
        at org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:133)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:84)
        at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:164)
        at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:108)
        at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:161)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:327)
        at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:309)
        at org.apache.cocoon.Cocoon.process(Cocoon.java:639)
        at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1096)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
        at java.lang.Thread.run(Thread.java:536)


-- 
Best regards
<. g[R]eK mailto:gReK@warsztat.pac.pl                                    .>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: get-xml in ESQL problem

Posted by Christian Haul <ha...@informatik.tu-darmstadt.de>.
g[R]eK wrote:
> <. Hi users! .>
> 
>   I have strange problem with ESQL. I want read xml from database as full xml
>   document (not fragment). So I decided to use <esql:get-xml>, it works almost
>   fine. 'Almost' because I must insert the xml from database in some tag, the
>   root element of xml in database can't be root element in returned document.
>   :-(
> 
>   My XSP and log are included below.
> 
>   This XSP works good:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:esql="http://apache.org/cocoon/SQL/v2">
>         <text>
>                 <esql:connection>
>                         <esql:pool>warsztat</esql:pool>
>                         <esql:execute-query>
>                                 <esql:query>SELECT * FROM artykuly</esql:query>
>                                 <esql:results>
>                                         <esql:row-results>
>                                                 <esql:get-xml column="text"/>
>                                         </esql:row-results>
>                                 </esql:results>
>                         </esql:execute-query>
>                 </esql:connection>
>         </text>
> </xsp:page>
> 
>   This XSP:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsp:page language="java" xmlns:xsp="http://apache.org/xsp" xmlns:esql="http://apache.org/cocoon/SQL/v2">
>                 <esql:connection>
>                         <esql:pool>warsztat</esql:pool>
>                         <esql:execute-query>
>                                 <esql:query>SELECT * FROM artykuly</esql:query>
>                                 <esql:results>
>                                         <esql:row-results>
>                                                 <esql:get-xml column="text"/>
>                                         </esql:row-results>
>                                 </esql:results>
>                         </esql:execute-query>
>                 </esql:connection>
> </xsp:page>
> 
>   raise exception:
>   
> DEBUG   (2003-09-06) 19:53.25:402   [core.program-generator] (/cocoon/cvs-local/warsztat/plain/artykuly/get-article.xml) Thread-11/ProgramGeneratorImpl: Got Language Exception
> org.apache.cocoon.components.language.LanguageException: Error compiling get_article_template_xml:
> ERROR 1 (org\apache\cocoon\www\cvs_local\warsztat\artykuly\get_article_template_xml.java):

I'm afraid you'll have to use a XSLT transform to strip the root element 
because XSP puts everything before the first non-xsp-tag outside the 
generate method.... together with esql is the result that some esql tags 
are ignored (not replaced with their corresponding java code) and java 
statements appearing in illegal places from a java POV.

	Chris.

-- 
C h r i s t i a n       H a u l
haul@informatik.tu-darmstadt.de
     fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org