Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat 8 JDBC和Oracle PDB连接问题_Java_Oracle_Tomcat_Jdbc - Fatal编程技术网

Java Tomcat 8 JDBC和Oracle PDB连接问题

Java Tomcat 8 JDBC和Oracle PDB连接问题,java,oracle,tomcat,jdbc,Java,Oracle,Tomcat,Jdbc,我有一个在Tomcat8上运行的Java8Web应用程序。我在server.xml文件中配置了一个JDBC连接,以连接到Oracle 12c容器数据库 <Resource accessToUnderlyingConnectionAllowed="true" auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxIdle="10" maxTo

我有一个在Tomcat8上运行的Java8Web应用程序。我在server.xml文件中配置了一个JDBC连接,以连接到Oracle 12c容器数据库

<Resource accessToUnderlyingConnectionAllowed="true" auth="Container" driverClassName="oracle.jdbc.OracleDriver" maxIdle="10" maxTotal="25" maxWaitMillis="10000" name="jdbc/LOCALDB" type="javax.sql.DataSource" url="jdbc:oracle:thin:admin/admin123@localhost:1521/DBSVC"/>
尽管存在错误,SQLPlus和SQLDeveloper可以连接到服务和SID,因此连接肯定可以工作。本文()建议您在使用JDBC和在侦听器配置文件中使用以下属性时可能会看到此错误

USE_SID_AS_SERVICE_listener=on
不幸的是,这不适用于我,它只会将上述错误更改为以下错误:

Caused by: oracle.net.ns.NetException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
lsnrctl状态的输出显示:

[oracle@bcc0fa014b84 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-OCT-2020 11:50:45

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                22-OCT-2020 11:49:29
Uptime                    0 days 0 hr. 1 min. 16 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/12.2.0.1/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/bcc0fa014b84/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=bcc0fa014b84)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/DBX/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "DBX" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
Service "DBXXDB" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
Service "aeb6317d78400953e053020011ac120e" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
  Instance "DBX", status READY, has 2 handler(s) for this service...
Service "dbsvc" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
  Instance "DBX", status READY, has 2 handler(s) for this service...
The command completed successfully
数据库上的服务如下:

[oracle@bcc0fa014b84 ~]$ lsnrctl services

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-OCT-2020 11:54:31

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Services Summary...
Service "DBX" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
Service "DBXXDB" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
Service "aeb6317d78400953e053020011ac120e" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
  Instance "DBX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "dbsvc" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
  Instance "DBX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
The command completed successfully
[oracle@bcc0fa014b84~]$lsnrctl服务
Linux版LSNRCTL:12.2.0.1.0版-2020年10月22日11:54:31生产
版权所有(c)1991年,2016年,Oracle。版权所有。
连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
服务摘要。。。
服务“DBX”有1个实例。
实例“DBX”,状态为就绪,有1个用于此服务的处理程序。。。
处理人:
“专用”已建立:1已拒绝:0状态:就绪
本地服务器
服务“DBXXDB”有1个实例。
实例“DBX”,状态为就绪,有1个用于此服务的处理程序。。。
处理人:
“D000”已建立:0已拒绝:0当前:0最大值:1022状态:就绪
调度员
(地址=(协议=tcp)(主机=bcc0fa014b84)(端口=36517))
服务“aeb6317d78400953e053020011ac120e”有2个实例。
实例“DBX”,状态为就绪,有1个用于此服务的处理程序。。。
处理人:
“专用”已建立:1已拒绝:0状态:就绪
本地服务器
实例“DBX”,状态就绪,有2个用于此服务的处理程序。。。
处理人:
“D000”已建立:0已拒绝:0当前:0最大值:1022状态:就绪
调度员
(地址=(协议=tcp)(主机=bcc0fa014b84)(端口=36517))
“专用”已建立:0已拒绝:0状态:就绪
本地服务器
服务“dbsvc”有2个实例。
实例“DBX”,状态为就绪,有1个用于此服务的处理程序。。。
处理人:
“专用”已建立:1已拒绝:0状态:就绪
本地服务器
实例“DBX”,状态就绪,有2个用于此服务的处理程序。。。
处理人:
“D000”已建立:0已拒绝:0当前:0最大值:1022状态:就绪
调度员
(地址=(协议=tcp)(主机=bcc0fa014b84)(端口=36517))
“专用”已建立:0已拒绝:0状态:就绪
本地服务器
命令已成功完成

目前,我不明白为什么Tomcat不能连接到我的Oracle数据库。有人知道为什么会这样吗?我遗漏了什么吗?

lsnrctl状态的输出是什么?更改为使用\u SID\u作为\u服务\u侦听器后创建了什么服务名称?您好!谢谢你回复我。更新了带有请求输出的帖子,但根据我对输出的理解,它显示监听器可以连接服务。我不确定添加USE_SID_as_service_listener后创建了什么服务。我不知道它创建了一个新的服务。您是否尝试过在JDBC URL中使用“127.0.0.1”而不是“localhost”?
[oracle@bcc0fa014b84 ~]$ lsnrctl services

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 22-OCT-2020 11:54:31

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
Services Summary...
Service "DBX" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
Service "DBXXDB" has 1 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
Service "aeb6317d78400953e053020011ac120e" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
  Instance "DBX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "dbsvc" has 2 instance(s).
  Instance "DBX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
  Instance "DBX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: bcc0fa014b84, pid: 89>
         (ADDRESS=(PROTOCOL=tcp)(HOST=bcc0fa014b84)(PORT=36517))
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
The command completed successfully