配置Jetty 6以使用commons.dbcp数据源

时间:2011-07-21 13:04:40

标签: java jdbc jetty apache-commons

您好我正在尝试配置Jetty 6.1.26以使用连接池,这让我很难过。

我将commons-dbcp-1.4.jarcommons-pool-1.5.6.jarmysql-connector-java-5.1.16放入 我的Jetty / lib / ext文件夹。

我还在我的Jetty / pom.xml中添加了对这些jar的引用

<dependencies>
   ...
   <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
  </dependency>
  <dependency>
    <groupId>commons-pool</groupId>
    <artifactId>commons-pool</artifactId>
    <version>1.5.6</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.16</version>
  </dependency>
</dependencies>

在我的eclipse中的web项目中,我的jetty-env.xml(在WEB-INF中)文件是这样的:

<Configure class="org.mortbay.jetty.webapp.WebAppContext">

<New id="MySQLDB" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>MySQLDB</Arg>
<Arg>
 <New class="org.apache.commons.dbcp.BasicDataSource">
    <Set name="driverClassName">com.mysql.jdbc.Driver</Set>
    <Set name="url">jdbc:mysql://host_ip</Set>
    <Set name="username">user</Set>
    <Set name="password">pwd</Set>
    <Set name="auth">Container</Set>
    <Set name="maxActive">-1</Set>
    <Set name="maxIdle">30</Set>
    <Set name="maxWait">10000</Set>
    <Set name="minEvictableIdleTimeMillis">600000</Set>
    <Set name="name">MySQLDB</Set>
    <Set name="removeAbandoned">true</Set>
    <Set name="removeAbandonedTimeout">5000</Set>
    <Set name="timeBetweenEvictionRunsMillis">10000</Set>
    <Set name="type">javax.sql.DataSource</Set>
 </New>
</Arg>

</Configure>

然而,当我启动Jetty(在我的Jetty目录中使用java -jar start.jar)时,我得到了这个例外:

java.lang.NoSuchMethodException: class org.apache.commons.dbcp.BasicDataSource.setAuth(class java.lang.String)

如何正确设置Jetty? 非常感谢!

2 个答案:

答案 0 :(得分:3)

在您的代码中,您有&lt; Set name =“auth”&gt; Container&lt; / Set&gt;指令说要调用类的方法setAuth。但是班上没有这样的东西。

答案 1 :(得分:2)

从配置中删除行<Set name="auth">Container</Set><Set name="type">javax.sql.DataSource</Set>:异常告诉您org.apache.commons.dbcp.BasicDataSource类上不存在这些函数。