gpt4 book ai didi

java - 使用 Sniffy 指定的 Oracle URL 无效

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:07 25 4
gpt4 key购买 nike

我正在尝试配置 Sniffy 以与 Oracle 一起使用。我使用 Glassfish 作为应用程序服务器,使用 JPA 2.0,并使用 EclipseLink 作为提供程序。

当 EclipseLink 尝试分配连接时,它失败并提示指定的 Oracle URL 无效,因为 "sniffer:" 前缀,我猜:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaMappingContext': Invocation of init method failed;
nested exception is javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.1.v20130918-f2b9fc5): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: Invalid Oracle URL specified
Error Code: 0

这是我在 domain.xml 文件中配置池的方式:

<jdbc-resource pool-name="poolGI" object-type="system-all" jndi-name="jdbc/poolGI" />
<jdbc-connection-pool driver-classname="io.sniffy.MockDriver" name="poolGI" res-type="javax.sql.DataSource" datasource-classname="oracle.jdbc.pool.OracleDataSource">
<property name="URL" value="sniffer:jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=service)))"></property>
<property name="user" value="user"></property>
<property name="password" value="password"></property>
</jdbc-connection-pool>

最佳答案

Sniffy开发人员在这里。

看起来oracle.jdbc.pool.OracleDataSource忽略了driver-classname属性并隐式使用oracle.jdbc.driver.OracleDriver。 OracleDriver 不了解 sniffer: 架构,因此出现异常。

您需要切换到另一个数据源才能使用 Sniffy。例如Hikari Connection Pool .

关于java - 使用 Sniffy 指定的 Oracle URL 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38761584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com