我正在尝试通过Java和Tomcat使用Oracle DB。 问题是我无法在" server.xml"中通过连接池和声明来配置正确的连接。文件。 因此,当我在Java类中使用此代码时:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con =DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:my","system","****");
String sql = "SELECT * FROM TestTable2";
PreparedStatement pStatement =con.prepareStatement(sql);
ResultSet rs = pStatement.executeQuery(sql);
一切正常。 但是当我在Java类中使用此代码时:
Context initContext = new
InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource datasource = (DataSource)envContext.lookup("jdbc/LocalMyDataBaseOracle");
Connection sqlCon = datasource.getConnection();
String sql = "SELECT * FROM TestTable2";
PreparedStatement pStatement =sqlCon.prepareStatement(sql);
ResultSet rs = pStatement.executeQuery(sql);
此代码
<ResourceLink type="oracle.jdbc.pool.OracleDataSource"
name="jdbc/LocalMyDataBaseOracle"
global="jdbc/MyDataBaseOracle"
/>
和
中的此代码<Resource driverClassName="oracle.jdbc.driver.OracleDriver"
factory="oracle.jdbc.pool.OracleDataSourceFactory"
name="jdbc/MyDataBaseOracle"
username="system"
password="****"
type="oracle.jdbc.pool.OracleDataSource"
url="jdbc:oracle:thin:@localhost:1521:my"
autoReconnectForConnectionPools="true"
autoReconnectForPools="true"
testOnBorrow="true"
testWhileIdle="true"
validationQuery="select 1 from dual"
validationInterval="34"
/>
我得到一个异常&#34; java.sql.SQLException:ORA-01017:用户名/密码无效;登录被拒绝&#34;在Connection sqlCon = datasource.getConnection();
第一和第二代码中的用户名和密码相同。请告知出了什么问题?
答案 0 :(得分:0)
我唯一想到的是你在密码中有一些国家字符,并且由于Java文件和配置xml的编码不同,它会有所不同。除非它只是错字。
顺便说一下。为什么以系统用户身份登录,而不是内部用户?