I am facing a weird problem with the SQLTransformer. This happens with cocoon 2.0.4 on jdk1.3.1 running in Tomcat 4.1.12
I have a J2EE Datasource defined via Tomcat's JNDI (the db is MySQL) bound at "java:comp/env/jdbc/Publisher" I am trying to get cocoon to use that datasource via the <datasources><j2ee/></datasources> element in the cocoon.xconf: ... <datasources> <j2ee name="publisher"> <dbname>Publisher</dbname> </j2ee> </datasources> ... (I guess this should be for the Avalon-Excalibur list, but here we go: <rant>I had to read the source of Excalibur's J2eeDataSource to understand that this component prepends "java:comp/env/jdbc" to what I put in the <dbname/>...This is counter-intuitive, I must say. Either document it or make it use the full JNDI name...</rant>) I can't get the SQLTransformer to process the following xml using this "publisher" datasource: ... <sql:execute-query> <sql:query name="news"> SELECT publish.headline, publish.bodytext, publish.urllink, publish.URLtitle, publish.imgloc, publish.imgALT, publish.section FROM publish,publish_sections WHERE publish_sections.section = 'homenews' AND publish_sections.live_id = publish.id </sql:query> </sql:execute-query> ... It insists on turning this into <rowset nrofrows="0" name="news" xmlns="http://apache.org/cocoon/SQL/2.0" /> By modifying SQLTransformer with debug statements, I *know* that the SQL query went through and did return a line at least. But the Transformer fails to send the corresponding sax events down the pipe... Even stranger, if instead of using the J2eeDataSource I use the JdbcDataSource component (which defines a cocoon-internal connection pool) with the same name and MySQL parameters, it all works: <datasources> <jdbc name="publisher"> <pool-controller min="5" max="10"/> <!-- identical setup as Tomcat's own connection pool --> <dburl>jdbc:mysql://localhost:3306/xxxx?autoReconnect=true</dburl> <user>xxxx</user> <password>xxxx</password> </jdbc> </datasources> This is what really gets me: using the j2eedatasource, it does not work, but using the jdbcdatasource, it works. and I *know* that even with the j2eedatasource, the SQL part of the transformer works (i.e the ResultSet is not empty). Weird... Anyone has an idea? I am about to dive into SQLTransformer even further to nail down this problem, but if anyone has an idea to put me on the right track, I would be most grateful :) To be fully complete, this is the output of the LogTransformer for the <rowset/> element: [startPrefixMapping] prefix=,uri=http://apache.org/cocoon/SQL/2.0 [startElement] uri=http://apache.org/cocoon/SQL/2.0,local=rowset,raw=rowset [ ] 1. uri=http://apache.org/cocoon/SQL/2.0,local=nrofrows,qname=nrofrows,type=CDAT A,valu e=0 [ ] 2. uri=http://apache.org/cocoon/SQL/2.0,local=name,qname=name,type=CDATA,value= news [endElement] uri=http://apache.org/cocoon/SQL/2.0,local=rowset,qname=rowset [endPrefixMapping] prefix= - Renaud --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.437 / Virus Database: 245 - Release Date: 06/01/2003 --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>