Hi,  I am new to this list but I'll try to describe this clearly.

I had an tomcat application running fine with a single user name & password 
specified
in server.xml.

It now needs the user name and password to be specified at run time, so I
removed the user name and password from server.xml and change my connection code
to use DataSource.getConnection(username, password) instead of 
DataSource.getConnection().

final InitialContext ctx = new InitialContext();

final DataSource   ds  = (DataSource) 
ctx.lookup("java:comp/env/jdbc/claimDatasource");
final Connection connection = ds.getConnection("postgres","mypassword");


this throwed PSQLException Connection rejected: FATAL: no postgreSQL user name 
specified
Then I tried coding to class BasicDataSource using other methods not part of the
DataSource interface:

final InitialContext ctx = new InitialContext();
final BasicDataSource ds = (BasicDataSource) 
ctx.lookup("java:comp/env/jdbc/claimDatasource");
ds.setUsername("postgres");
ds.setPassword("mypassword");
final Connection connection = ds.getConnection();


This worked fine, but I prefer to use a standard interface method 
DataSource.getConnection(u,p)
rather than non standard class methods BasicDataSource.setUsername(u) and 
.setPassword(p).

Is this a bug or am I doing something wrong?

My environment is:
- Windows XP Home Edition with Service Pack 2
- PostgreSQL 8.0.1
- JDBC PostgreSQL 8.0 JDBC 3 Build 311
- commons-dbcp 1.2.1 (bundled with Tomcat 5.0.27)
- sun java 1.4.2_05

Thanks
Jean-Pierre Pelletier

Reply via email to