2

我习惯于将 Oracle 与 Spring 和 DBCP 连接起来。

    <bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource">
        <property name="driverClassName" value="oracle.jdbc.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:1521/ORCL" />
        <property name="username" value="PMSYSDB" />
        <property name="password" value="********" />
    </bean>

但我得到:Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (IO Error: The Network Adapter could not establish the connection)

我可以通过 SQLDeveloper 使用以下属性进行连接:

Hostname: localhost
Port    : 1521
SID     : ORCL
username: PMSYSDB
password:

所以我的数据库已启动并正在运行...防火墙已关闭...数据库和tomcat在同一台机器上...

认为这并不重要,但我将数据源与 Spring Security 一起使用:

     <authentication-manager>
         <authentication-provider>
        <jdbc-user-service data-source-ref="dataSource"

           users-by-username-query="
              select username, password, enabled 
              from users where username=?" 

           authorities-by-username-query="
              select u.username, ur.authority from users u, user_roles ur 
              where u.user_id = ur.user_id and u.username =?  " 

        />
      </authentication-provider>
    </authentication-manager>
4

3 回答 3

5

问题是我将此语法jdbc:oracle:thin:@localhost:1521/ORCL用于连接字符串。在/Oracle 需要服务名称而不是 SID 之后(ORCL 是我的 SID)。解决方案是将连接sring更改为jdbc:oracle:thin:@localhost:1521:ORCL

于 2012-11-08T18:12:26.100 回答
1

数据库可能设置为不允许此类连接。试试这个:

telnet localhost 1521

看看你是否可以在那个端口上连接。

于 2012-10-28T14:37:25.523 回答
0

更改和操作后刷新侦听器

C:\oracleexe\app\oracle\product\11.2.0\server\network\ADMIN\listener.ora

C:\oracleexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsnames.ora

不要忘记在 CMD 中使用以下命令刷新侦听器(以管理员身份运行)。

lsnrctl stop
lsnrctl start  

在此之后等待 1-2 分钟,然后单击测试。

于 2018-08-25T13:29:28.173 回答