I am trying to get familiar with Cocoon (2.1) and try to expand the XMLform HowToWizard demo by adding an insert statement to write data to a MySQL database. I added a jBean.insert() method in the HowToWizardAction class, added an insert() method in the bean class and added a DB class with a static method that returns a Connection object. This works.
To use a connection pool I added the driver in web.xml and the datasource in cocoon.xconf I tested the pool (demo) using a simple ESQL page. It works fine. Then I changed the DB class to use a connection pool by implementing Composable (code below), but I receive a null pointer exception from the pipeline when insert is executed. When I put the code in the HowToWizardAction class it works fine (since it's an action). I have the feeling that the compose method is never executed. Do I have to add the DB class in the sitemap (as what?) or the cocoon.xconf to make sure that DB is initialized? Is this a useful approach in Cocoon, or should I use a different approach to return a Connection from a connection pool to the bean class? The DB class using the connection pool: <snippet> import java.sql.Connection; import java.sql.SQLException; import java.sql.DriverManager; import org.apache.avalon.framework.component.Composable; import org.apache.avalon.framework.component.ComponentManager; import org.apache.avalon.framework.component.ComponentSelector; import org.apache.avalon.framework.component.ComponentException; import org.apache.avalon.excalibur.datasource.DataSourceComponent; public class DB implements Composable { public DB() {} public static Connection getConnection() { Connection con = null; try { con = datasource.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return con; } private static DataSourceComponent datasource; public void compose(ComponentManager manager) throws ComponentException { ComponentSelector selector = (ComponentSelector)manager.lookup (DataSourceComponent.ROLE + "Selector"); datasource = (DataSourceComponent)selector.select("demo"); } } </snippet> --------------------------------------------------------------------- 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]>