我正在尝试连接到本地oracle数据库,但是我收到了这个神秘的错误消息:
Invalid Oracle URL specified: OracleDataSource.makeURL
。
我很确定这是由于我传递的数据库连接参数出错,但实际上,此错误消息对我没有任何帮助。任何有关我做错的提示都将不胜感激。
仅供参考:以下是用于连接的代码,但硬编码字符串除外,这是我们的生产环境中使用的,并且在那里工作。
OracleDataSource dataSource = new OracleDataSource();
dataSource.setServerName("localhost");
dataSource.setUser(userName);
dataSource.setPassword(password);
dataSource.setDatabaseName("orcl");
return dataSource.getConnection();
答案 0 :(得分:17)
令人惊讶的是,在将以下两行添加到创建连接的代码之后,它起作用了。
dataSource.setPortNumber(1521);
dataSource.setDriverType("thin");
我不明白为什么我们之前没有遇到过这个问题,但这可能与我的本地安装有关。我最大的好处是错误消息没有提供有关错误的任何细节。
答案 1 :(得分:10)
如果你使用setUrl(或者你的容器就像glassfish那样)
确保使用正确的语法
==== 注意@ 之前的冒号====
JDBC:预言:瘦:@localhost:1521:SID
或
JDBC:预言:瘦:@localhost:1521 /服务名
如果语法出现问题,数据源类会尝试解析它并提供神秘错误
答案 2 :(得分:1)
WildFly 用户(当前为v14.0.1.Final)。
您需要为数据源添加additional parameters:
数据源->连接->连接属性
driverType = thin (按Enter键即可)。
还要仔细检查您使用的数据源类型是否正确。就我而言,问题是通过创建XA DataSource并将URL传递给参数来解决的。