您好我正在尝试配置Jetty 6.1.26以使用连接池,这让我很难过。
我将commons-dbcp-1.4.jar
,commons-pool-1.5.6.jar
和mysql-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? 非常感谢!
答案 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
类上不存在这些函数。