配置 Jetty 6 以使用 commons.dbcp 數據源 (Configuring Jetty 6 to use commons.dbcp datasource)


問題描述

配置 Jetty 6 以使用 commons.dbcp 數據源 (Configuring Jetty 6 to use commons.dbcp datasource)

Hi I'm trying to configure Jetty 6.1.26 to use connection pooling and it's giving me a hard time.

I put commons‑dbcp‑1.4.jarcommons‑pool‑1.5.6.jar and mysql‑connector‑java‑5.1.16 in  my Jetty/lib/ext folder.

I also added references to those jars in my Jetty/pom.xml

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

In my web project in eclipse, my jetty‑env.xml (in WEB‑INF) file is like this:

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

However, when I start Jetty (using java ‑jar start.jar in my Jetty directory), I get this exception:

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

How can I setup Jetty correctly? Thanks alot!

‑‑‑‑‑

參考解法

方法 1:

In your code you have  <Set name="auth">Container</Set> the instruction says to call the method setAuth of the class. But the class doesn't have anything like that.

方法 2:

Remove the lines <Set name="auth">Container</Set> and <Set name="type">javax.sql.DataSource</Set> from the configuration: the exception is telling you that those functions don't exist on the org.apache.commons.dbcp.BasicDataSource class.

(by MathieukanFemi)

參考文件

  1. Configuring Jetty 6 to use commons.dbcp datasource (CC BY‑SA 3.0/4.0)

#jdbc #java #apache-commons #jetty






相關問題

在不啟動事務的情況下通過 Hibernate 對 MySQL 數據庫運行查詢意味著什麼? (What are the implications of running a query against a MySQL database via Hibernate without starting a transaction?)

Праблема з заявай аб абнаўленні Java (Java Update statement issue)

我的 Jar 應用程序(myapplication.jar + Mysql 連接器)在其他計算機上不起作用 (My Jar application(myapplication.jar + Mysql connector) doesnt work on other computer)

executeBatch JDBC 的堆大小錯誤 (Heapsize error with executeBatch JDBC)

格式為“07-apr-2016”的 Java 日期字符串在轉換為 sqldate 時會產生錯誤的結果 (A Java date string in the format "07-apr-2016" produces wrong result when converted to sqldate)

SQLite 中的臨時內存數據庫 (Temporary in-memory database in SQLite)

Websphere 6.1 中的 SQL 日誌記錄 (SQL logging in Websphere 6.1)

我在哪裡可以下載 MySQL Connector/J 的源代碼 (Where can I download source for MySQL Connector/J)

'用戶必須在 weblogic 重新啟動時提供 JDBC 連接' ('The user must supply a JDBC connection' on weblogic restart)

配置 Jetty 6 以使用 commons.dbcp 數據源 (Configuring Jetty 6 to use commons.dbcp datasource)

在netbeans上訪問mysql (Access mysql on netbeans)

spark中的jdbc更新語句 (Jdbc update statement in spark)







留言討論