I get a NullPointerException when attempting to configure ActionServlet
as follows (struts nightly build 20020508, struts-config_1_1.dtd):
  <data-sources>

    <data-source
      className="org.apache.struts.config.DataSourceConfig"
      key="MyBasicDataSource"
      type="org.apache.commons.dbcp.BasicDataSource">

      <set-property property="defaultAutoCommit" value="false"/>
      <set-property property="driverClassName" value="org.postgresql.Driver"/> 
      <set-property property="maxActive" value="4"/> 
      <set-property property="password" value=""/> 
      <set-property property="url" value="jdbc:postgresql:mystraw"/> 
      <set-property property="user" value="postgres"/>

    </data-source>

  </data-sources>

I believe the above should work. Why? Because a little test application 
(Pgtest) with analogous code, ie:
            BasicDataSource ds =  new BasicDataSource();          
            ds.setDefaultAutoCommit(false);
        (and so forth)
produces a valid ResultSet, when run like this:
$ java -cp 
/opt/j2sdk1.4.0/lib:commons-collections.jar:commons-dbcp.jar:commons-pool.jar:pgjdbc2.jar:.
 Pgtest

Running my webapp with log4j set to DEBUG, the above struts-config.xml 
fragment appears to pass through Digester just fine... but then:

...snip...
2886 [main] DEBUG org.apache.commons.digester.Digester.sax  - endDocument()
2902 [main] DEBUG org.apache.struts.action.ActionServlet  - Initializing applica
tion path '' message resources from 'com.myblank.ApplicationResources'
2904 [main] DEBUG org.apache.struts.action.ActionServlet  - Initializing applica
tion path '' data sources
2910 [main] DEBUG org.apache.struts.action.ActionServlet  - Initializing applica
tion path '' data source 'MyBasicDataSource'
2931 [main] DEBUG org.apache.commons.beanutils.BeanUtils  - BeanUtils.populate(o
rg.apache.commons.dbcp.BasicDataSource@ea48be, {url=jdbc:postgresql:mystraw, use
r=postgres, password=, driverClassName=org.postgresql.Driver, maxActive=4, defau
ltAutoCommit=false})
2932 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, url, jdbc:postgresql:mystraw)
2955 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  - Convert string 'j
dbc:postgresql:mystraw' to class 'java.lang.String'
2955 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  -   Using converter
 org.apache.commons.beanutils.converters.StringConverter@d95da8
2955 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, user, postgres)
2961 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, password, )
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  - Convert string ''
 to class 'java.lang.String'
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  -   Using converter
 org.apache.commons.beanutils.converters.StringConverter@d95da8
2962 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, driverClassName, org.postgresql.Driver
)
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  - Convert string 'o
rg.postgresql.Driver' to class 'java.lang.String'
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  -   Using converter
 org.apache.commons.beanutils.converters.StringConverter@d95da8
2962 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, maxActive, 4)
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  - Convert string '4
' to class 'int'
2962 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  -   Using converter
 org.apache.commons.beanutils.converters.IntegerConverter@65c7f6
2963 [main] DEBUG org.apache.commons.beanutils.BeanUtils  -   setProperty(org.ap
ache.commons.dbcp.BasicDataSource@ea48be, defaultAutoCommit, false)
2963 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  - Convert string 'f
alse' to class 'boolean'
2963 [main] DEBUG org.apache.commons.beanutils.ConvertUtils  -   Using converter
 org.apache.commons.beanutils.converters.BooleanConverter@2aea3e
3044 [main] ERROR org.apache.struts.action.ActionServlet  - Initializing applica
tion data source MyBasicDataSource
java.lang.NullPointerException
        at java.util.Hashtable.put(Hashtable.java:386)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(Unknown Sour
ce)
        at org.apache.commons.dbcp.BasicDataSource.setLogWriter(Unknown Source)
        at org.apache.struts.action.ActionServlet.initApplicationDataSources(Act
ionServlet.java:884)
...snip...

I have been unable to locate the log4j statement that produces the above
ERROR message.

If you've read this far, your comments will be most welcome.

TIA,
-- 

Mark Johnson
[EMAIL PROTECTED]

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to