2015-10-16 75 views
2

我有一个使用Postgres的Spring Boot应用程序(1.2)。今天,我想将其切换到Oracle,但是当我尝试连接我得到一个异常,说:无法通过Spring Boot和Hibernate连接到Oracle

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection 

其下方,

Caused by: java.net.ConnectException: Connection refused 

当然如此,看起来像坏的凭据,但我知道他们很好,而且他们在Oracle SQL Developer中工作得很好。我很困惑。这里是我的属性文件条目:

# Properties for Hibernate and Oracle 
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver 
spring.datasource.url=jdbc:oracle:thin:@//earth-db-11:5121/stardev 
spring.datasource.username=ops$abcdefg 
spring.datasource.password=mypassword 
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect 

我唯一的想法是,有在用户名$,而我试图逃避它,并把它周围的双引号。

任何想法?

谢谢...

UPDATE:

非常感谢BonanzaOne,我也有端口号是错误的。纠正导致新的错误:

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 

我看着它,当然,但我不关注你的告诉我:

ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 

Cause: The listener received a request to establish a connection to a database 
or other service. The connect descriptor received by the listener specified a 
service name for a service (usually a database service) that either has not yet 
dynamically registered with the listener or has not been statically configured 
for the listener. This may be a temporary condition such as after the listener 
has started, but before the database instance has registered with the listener. 

不过,SQL Explorer连接罚款。

+0

赞成@ BonanzaOne的回答,您是否可以使用完全相同的凭据/连接url连接到Oracle与SQL Developer? – xenoterracide

+0

糟糕,所以stardev是SID,而不是服务名称。只是要弄清楚如何使用SID来代替... –

+0

明白了!我必须将/更改为:并在主机名称前删除//。谢谢你们! –

回答

6

该异常意味着Oracle侦听器未启动,或者您尝试连接到不存在/不可访问的侦听器。

我的猜测是你尝试错误的端口“5121”。 Oracle默认端口是。

你可以尝试一下,看看会发生什么?


FAQ基本上有撰写你的JDBC字符串URL的方式有两种:

Old syntax

jdbc:oracle:thin:@[HOST][:PORT]:SID

New syntax

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

我的猜测是,你使用了错误的语法SID /服务名称组合,换句话说,您正在使用需要SERVICE名称的新语法,但是您正在使用SID名称来执行此操作。

试试这个:的jdbc:神谕:薄:@土-DB-11:1521:stardev

或者,也许找出服务名称,并将其应用到您正在使用新的语法,而不是SID名称。

+0

Ug,显然我一直在工作太多时间。我的确有错误,正如你所说,谢谢。可悲的是,这只会让我发现一个新的错误,我会更新这个问题。尽管如此,SQL Explorer连接还不错,而且在我的属性文件中使用相同的凭据。非常感谢! –

+0

很高兴听到你解决它!不要担心这是有趣的^^ – BonanzaOne

+0

这节省了我的一天 – Tirumudi