Hi,
I just tried to add a <data-source> element to my Struts-based webapp. I put the
proper syntax into my struts-config.xml file, my web.xml file, my
%TOMCAT_HOME%/conf/server.xml file and I put mysql-connector-java-3.0.9-stable-bin.jar
into %TOMCAT_HOME%/common/lib (nowhere else).
Now when I restart Tomcat (4.1.x), my webapp disappears altogether ("503 - Servlet
action is currently unavailable ").
What's up with that? I didn't change anything, just added some new lines for the new
DataSource.
Thanks for any suggestions or guesses. The pertinent code is posted below.
-----------------------------------------------
New addition to server.xml:
<Resource auth="Container" name="jdbc/mydomainDB" scope="Shareable"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/porturla">
<parameter><name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://mysql:3306/mydomain?autoReconnect=true</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>username</name>
<value>mydomain</value>
</parameter>
<parameter>
<name>password</name>
<value>********</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name> <!-- in seconds -->
<value>90</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams>
New addition to WEB-INF/web.xml:
<resource-ref>
<res-ref-name>
jdbc/mydomainDB
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
New addition to struts-config.xml:
<data-sources>
<data-source type="javax.sql.DataSource">
<set-property property="autoCommit" value="true"/>
<set-property property="driverClass" value="org.gjt.mm.mysql.Driver"/>
<set-property property="minCount" value="2"/>
<set-property property="maxCount" value="10"/>
<set-property property="username" value="mydomain"/>
<set-property property="password" value="*******"/>
<set-property property="url"
value="jdbc:mysql://mysql:3306/mydomain?autoReconnect=true"/>
</data-source>
</data-sources>
-----------------------------------------------
Also, I do not see anything extraordinary within the "localhost" log (what setting do
I change to make this log print more verbose info?). My Tomcat startup log says:
...
Nov 15, 2003 6:06:56 AM org.apache.struts.action.ActionServlet initModuleDataSources
SEVERE: Initializing application data source org.apache.struts.action.DATA_SOURCE
java.lang.InstantiationException: javax.sql.DataSource
at java.lang.Class.newInstance0(Class.java:293)
at java.lang.Class.newInstance(Class.java:261)
at
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:231)
at
org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:1081)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:472)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3421)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3609)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at ngasi.CustomAppserverLoader.main(Unknown Source)
Nov 15, 2003 6:06:57 AM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:4601
Nov 15, 2003 6:06:57 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/48
config=/usr/ngasi/contexts/porturla/appservers/jakarta-tomcat-4.1.27/conf/jk2.properties
-----------------------------------------------
Thanks again.
____________________________________________________________
Enter now for a chance to win a 42" Plasma Television!
http://ad.doubleclick.net/clk;6413623;3807821;f?http://mocda1.com/1/c/563632/113422/313631/313631
AOL users go here:
http://ad.doubleclick.net/clk;6413623;3807821;f?http://mocda1.com/1/c/563632/113422/313631/313631
This offer applies to U.S. Residents Only
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]