Neh*_*nia 5 spring connection-pooling c3p0 tomcat6
我有一个在tomcat 6下运行的基于Spring的Web应用程序.现在,我想使用c3p0连接池而不是tomcat的默认DBCP.所以,从c3p0帮助文档中,我已经定义了context.xml类似的数据源:
<Resource name="jdbc/sample" auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@someServer:1551:xyz"
username="userName"
password="pwd"
validationQuery="SELECT 1 FROM dual"
testOnBorrow="true"
testWhileIdle="true"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="20"
minPoolSize="5"
acquireIncrement="1"
/>
Run Code Online (Sandbox Code Playgroud)
现在,文档说,我应该包括以下内容web.xml:
<resource-ref>
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
我还有以下内容applicationContext.xml:
<jee:jndi-lookup id="sampleDataSource" resource-ref="true"
jndi-name="jdbc/sample" />
Run Code Online (Sandbox Code Playgroud)
当我启动tomcat时,我得到了
javax.naming.NameNotFoundException:名称jdbc未绑定在此Context中
没有c3p0并在tomcat6中使用默认连接池工作正常.
任何帮助,将不胜感激.
小智 1
您还需要 context.xml 中的一个条目,例如:
<Context antiJARLocking="true" swallowOutput="true">
<ResourceLink
global="jdbc/sample"
name="jdbc/sample"
type="javax.sql.DataSource" />
</Context>
Run Code Online (Sandbox Code Playgroud)
我同意 J2EE 有太多的间接级别。请注意,context.xml 可以驻留在 Tomcat 的“conf”目录中,也可以驻留在 Web 应用程序的 META-INF 目录中(具体取决于您希望数据源适用于所有 Web 应用程序还是仅适用于特定的 Web 应用程序)。使用 context.xml 条目,您不需要 web.xml 中的资源引用。
| 归档时间: |
|
| 查看次数: |
9775 次 |
| 最近记录: |