首先,对不起,如果我说错了,英语不是我的母语。另外,出于安全(和NDA)的原因,我正在更改真实姓名
每当我尝试使用URL将URL从“ Glassfish”的Java项目连接到外部数据库“ jdbc:oracle:thin:@ // HOST:1521 / SID”,DBUSER = auser,DBPASSWORD = apass123时,都会抛出
#include <iostream>
#include <string>
int main(){
int total = 95;
std::cout << "Grade is : " << total2Grade(total) << std::endl;
}
std::string total2Grade(int total){
std::string Grade;
if (total >= 90){
Grade = 'A';
}else if (total > 80 && total <= 89){
Grade = 'B';
}else if (total > 70 && total <= 79){
Grade = 'C';
}else if (total > 60 && total <= 69){
Grade = 'D';
}else{
Grade = 'E';
}
return Grade;
}
这是我配置Glassfish池的方式:
Glassfish的domain.xml
ORA-01017: invalid username/password; logon denied
我的项目的connect.java,在<jdbc-connection-pool datasource-classname="oracle.jdbc.pool.OracleDataSource" name="NamePool" res-type="javax.sql.DataSource">
<property name="URL" value="jdbc:oracle:thin:@//HOST:1521/SID"></property>
<property name="DBPASSWORD" value="apass123"></property>
<property name="DBUSER" value="auser"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="NamePool" jndi-name="jdbc/jndiORA"></jdbc-resource>
处抛出错误
dataSource.getConnection()
但是当我尝试使用相同的凭据连接DBeaver时,它确实起作用!
DBeaver Oracle Connection Settings
DBeaver connection, shows the schemas and can do queries
尝试了类似主题中提供的一些答案,但没有正面结果
我不是外部数据库的管理员,因此无法尝试“更改系统设置sec_case_sensitive_logon”解决方案
非常感谢您所做的一切!
答案 0 :(得分:0)
属性应为user
和password
,而不是dbuser
和dbpassword
<jdbc-connection-pool datasource-classname="oracle.jdbc.pool.OracleDataSource" name="NamePool" res-type="javax.sql.DataSource">
<property name="URL" value="jdbc:oracle:thin:@//HOST:1521/SID"></property>
<property name="USER" value="auser"></property>
<property name="PASSWORD" value="apass123"></property>
</jdbc-connection-pool>
另外/SID
实际上是/service-name
,因此请检查是否正确,并且您正在尝试使用正确的CDB / PDB-尽管来自DBeaver的屏幕截图有点令人困惑,因为这似乎是在指定连接面板中的SID,但在第二个图像中显示服务名称URL。
答案 1 :(得分:0)
检查您的连接URL(例如:jdbc:oracle:thin:@myhost:1521 / myorcldbservicename)。始终使用服务名代替SID。另外,使用纯Java程序DataSourceSample.java验证连接是否正常。这将消除任何与数据库相关的问题。