Ошибка при попытке подключения к оракулу БД из селена - PullRequest
1 голос
/ 16 октября 2019

Я пытаюсь подключиться к оракулу БД из Selenium с помощью jdbc и получаю следующее сообщение:

java.sql.SQLRecoverableException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

Я могу подключиться к этому БД из pl / sql успешно, ноиз jdbc я получаю эту ошибку. Ниже приведен код. Кто-нибудь может помочь мне здесь?

    @Test
    public void test11 () {

    String server = "host";
    String port = "1521";
    String database = "db";
    String user = "user";
    String pwd = "pw";

    try {
        String url = "jdbc:oracle:thin:@" + server + ":" + port + "/" + database;

        Connection con = DriverManager.getConnection(url, user, pwd);
        Statement stmt = con.createStatement();

        con.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

LISTENER.ORA:

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
        (GLOBAL_DBNAME = "net_service_name")
        (ORACLE_HOME = C:\oracle\product\10.2.0\client_1)
        (SID_NAME = "net_service_name")
    )
    (SID_DESC = 
        (GLOBAL_DBNAME = "service_name")
        (ORACLE_HOME = C:\oracle\product\10.2.0\client_1)
        (SID_NAME = "service_name")
    )
)

LISTENER =
(DESCRIPTION_LIST =
    (DESCRIPTION =
        (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = "host")(PORT = 1521))
        )
    )
)

TNSNAMES.ORA:

"net_service_name"=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = "host")(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = "service_name")
    )
  )

1 Ответ

0 голосов
/ 17 октября 2019

Я думаю, что вы неправильно использовали

String url = "jdbc:oracle:thin:@" + server + ":" + port + "/" + database;

: вместо /

Попробуйте с вашими параметрами

public static void conn() throws ClassNotFoundException, SQLException{  
    Connection con=DriverManager.getConnection(  
            "jdbc:oracle:thin:@localhost:1521:orclpdb", "HR", "HR"); 
    Statement stmt=con.createStatement();  
    ResultSet rs=stmt.executeQuery("select count(*) from dual");  
    while(rs.next())  
        System.out.println(rs.getInt(1));  
    con.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...