无法从Glassfish池连接到外部Oracle数据库,但是我可以从DBeaver连接到数据库

问题描述 投票:0回答:2

[首先,对不起,如果我说错了,英语不是我的母语。另外,出于安全(和NDA)的原因,我正在更改真实姓名

[每当我尝试将我的带有Glassfish的Java项目通过URL“ jdbc:oracle:thin:@ // HOST:1521 / SID”连接到外部数据库时,DBUSER = auser,DBPASSWORD = apass123都会抛出]]

ORA-01017: invalid username/password; logon denied

这是我配置Glassfish池的方式:

DataSource and Driver

URL, DBUSER and DBPASSWORD

Glassfish的domain.xml

<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>

我的项目的connect.java,在dataSource.getConnection()处引发错误

import javax.sql.DataSource;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public static void Connect(String query) throws NamingException {
        InitialContext ctx = new InitialContext();
        DataSource dataSource = (DataSource) ctx.lookup("jdbc/jndiORA");
        try (Connection conn = dataSource.getConnection()) {
            try (Statement stmt = conn.createStatement()) {
                ResultSet rs = stmt.executeQuery(query);
            }
        }
}

但是当我尝试使用相同的凭据连接DBeaver时,它确实起作用!

DBeaver Oracle Connection Settings

DBeaver connection, shows the schemas and can do queries

[尝试了类似主题中提供的一些答案,没有正面结果

  • 使用“ auser”和“ apass123”代替auser和apass123
  • 用\(\ auser和\ apass)转义第一个字符
  • 下载ojdbc6.jar的最新版本
  • 我不是外部数据库的管理员,因此无法尝试“更改系统设置sec_case_sensitive_logon”的解决方案

非常感谢您的一切!

[首先,对不起,如果我说错了,英语不是我的母语。另外,出于安全(和NDA)的原因,我正在更改真实姓名,每当尝试使用...

oracle jdbc glassfish dbeaver
2个回答
0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.