Tomcat 7和Oracle Connection Pooling

时间:2013-12-20 22:00:20

标签: java oracle tomcat

我正在尝试使用与tomcat 7的连接池并连接到Oracle数据库。在那一刻我的上下文看起来像这样

<Resource 
     type="org.apache.tomcat.jdbc.pool.DataSource"
     driverClassName="oracle.jdbc.OracleDriver"
     factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
     url="my-url" 
     username="username"
     password="password"

我使用google guice注入DataSource,

bind(Context.class).to(InitialContext.class);
bind(DataSource.class).toProvider(fromJndi(OracleDataSource.class,"java:comp/env/jdbc/nameToUse"));

然而它似乎确实在创建提供程序,但是只要它调用它,我总是会遇到运行时错误

javax.naming.NamingException:ORA-01017:用户名/密码无效;登录被拒绝

即使登录详细信息肯定是正确的 - 如果我切换回旧的连接数据库的方式,它们也能正常工作。我使用Guice做错了什么,或者与Oracle的连接池(9i我相信)设置不同?

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

除了在Resource元素中设置用户名和密码属性外,您还需要在URL中包含用户名和密码。

E.g。

<Resource 
 type="org.apache.tomcat.jdbc.pool.DataSource"
 driverClassName="oracle.jdbc.OracleDriver"
 factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
 url="jdbc:oracle:thin:joebob/jbpass@mydbhost.example.com:1521/db"
 username="joebob"
 password="jbpass" ... />