我正在尝试使用与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我相信)设置不同?
非常感谢任何帮助
答案 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" ... />