JDNI连接Oracle数据库问题
试试用JDNI连接数据库。其实不晓得JDNI是啥会事。就照猫画虎。配置一个出来看看。网上也找了些资料来看。还是遇到问题了。所以请教各位大哥大姐们!!!
我用的是Oracle10g数据库:数据库名为 ccpa,用户名为 postaudit,密码为 paea;tomcat是6.0 的。
在tomcat的 context.xml 里的配置为:
<Resource name="ccpa" auth="Container" type="javax.sql.DataSource" driverClass="oracle.jdbc.driver.OracleDriver" username="postaudit" password="paea" jdbcUrl="jdbc:oracle:thin:@127.0.0.1:1521:ccpa" idleConnectionTestPeriod="0" idleMaxAge="60" partitionCount="1" maxConnectionsPerPartition="5" minConnectionsPerPartition="2" acquireIncrement="2" poolAvailabilityThreshold="20" connectionTimeout="60000"/>
<resource-ref> <description>DB Connection</description> <res-ref-name>ccpa</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
//连接数据库 public Connection getConnection(){ Connection conn=null; try { String jndi="ccpa"; Context ctxt=new InitialContext(); DataSource ds=(DataSource) ctxt.lookup(jndi); System.out.println("XXXXXXXXXXXXXXX"+ds); try { conn=ds.getConnection(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (NamingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; }javax.naming.NameNotFoundException: Name ccpa is not bound in this Context at org.apache.naming.NamingContext.lookup(NamingContext.java:770) at org.apache.naming.NamingContext.lookup(NamingContext.java:153) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152) at javax.naming.InitialContext.lookup(InitialContext.java:392)
<Context path="/myweb" docBase="web1" debug="0" crosscontext="true" reloadable="true"> <Resource name="jdbc/sample_db" auth="Container" type="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000" username="postaudit" password="paea" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:ccpa"/></Context>
[解决办法]
更正一下:
server.xml中第二行:
<Resource name="jdbc/sample_db"
更正为:
<Resource name="jdbc/ccpa"
和你的web.xml中配置的一致.