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]>