Jetty Context v. Tomcat Context

291 views
Skip to first unread message

Greg Dougherty

unread,
Mar 10, 2011, 4:12:55 PM3/10/11
to Google Web Toolkit
The production version of my GWT app runs under Tomcat, with the
following settings:
context.xml:
<Context path="/AppName" docBase="webapps/AppName" debug="5"
reloadable="true"
crossContext="true">
<Resource
type="javax.sql.DataSource"
auth="Container"
name="jdbc/Exome"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="username"
password="password"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="ServerURL"
removeAbandoned="true"
removeAbandonedTimeout="3600"
logAbandoned="true"/>
</Context>

This allows my app to connect to a SQL Server database maintained by
IT.

I would like to be able to debug client side code in my app, which
means I need to get this working in development mode w/ Jetty. I
wrote the following jetty-web.xml file.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//
EN"
"http://jetty.mortbay.org/configure.dtd">

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<New class="org.mortbay.jetty.plus.naming.Resource">
<Arg>java:/comp/env</Arg>
<Arg>
<New
class="org.apache.commons.dbcp.BasicDataSourceFactory">
<Set name =
"driverClassName">com.microsoft.sqlserver.jdbc.SQLServerDriver</Set>
<Set name = "url">ServerURL</Set>
<Set name = "username">username</Set>
<Set name = "password">password</Set>
<Set name = "name">jdbc/Exome</Set>
</New>
</Arg>
</New>
</Configure>

I added Apache commons-dbcp-1.4.jar and commons-pool-1.5.5.jar to
Tomcat (and to my classpath) to get JDBC 4 DataSource (I have the SQL
Server JDBC 4 driver). I added jetty-naming-6.1.11.jar and jetty-
plus-6.1.11.jar to my classpath. When I launch my app, I get the
following error:


Starting Jetty on port 8888
[WARN] Config error at <Set
name="driverClassName">com.microsoft.sqlserver.jdbc.SQLServerDriver</
Set>
[WARN] Config error at <New
class="org.mortbay.jetty.plus.naming.Resource"><Arg>java:/comp/env</
Arg><Arg>
<New
class="org.apache.commons.dbcp.BasicDataSourceFactory"><Set
name="driverClassName">com.microsoft.sqlserver.jdbc.SQLServerDriver</
Set><Set name="url">ServerURL</Set><Set name="username">username</
Set><Set name="password">password</Set><Set name="name">jdbc/Exome</
Set></New>
</Arg></New>
[WARN] Failed startup of context
com.google.gwt.dev.shell.jetty.JettyLauncher
$WebAppContextWithReload@180b22e{/,C:\Path\war}
java.lang.NoSuchMethodException: class
org.apache.commons.dbcp.BasicDataSourceFactory.setDriverClassName(class
java.lang.String)
at org.mortbay.xml.XmlConfiguration.set(XmlConfiguration.java:416)
at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:
240)
...
at
org.mortbay.jetty.webapp.JettyWebXmlConfiguration.configureWebApp(JettyWebXmlConfiguration.java:
109)
at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
1217)
...

Any suggestions as to what's going wrong / what I've done wrong?

Thanks!

Greg
Reply all
Reply to author
Forward
0 new messages