java - LDAP 类型的数据源 url 是什么

标签 java spring oracle jdbc ldap

我正在使用 Spring jdbc api 连接到 Oracle 数据库。仅向该特定数据库提供 LDAP 样式的连接,并且我成功地从 Oracle 的数据库客户端 SQL 开发人员建立了连接。

有一点对我来说很奇怪,那就是连接字符串的格式:

xyz.loc.biz.com:4050:4049

它在 SQL Developer 中应用时有效,但是您会注意到有两个数字应该代表端口号,但为什么是两个?

尽管如此,我在代码中使用了上面的 url,它看起来像:

@Bean
public DataSource getDataSource(){
    SimpleDriverDataSource ds = new SimpleDriverDataSource();
    ds.setUrl("jdbc:oracle:thin:@ldap://xyz.loc.biz.com:4050:4049/...");

    ds.setDriver(new OracleDriver());
    ds.setUsername("xxxxxx");
    ds.setPassword("yyyyyy");

    try(Connection conn = ds.getConnection()){
        log.info("conn={}",conn);
    }catch(Exception e){
        e.printStackTrace();
    };
    return ds;
}

毫不奇怪,它会显示如下错误:

java.lang.NumberFormatException: For input string: "4050:4049"

有人可以帮忙吗?

SQL Developer 中的设置:

enter image description here

最佳答案

似乎如果您指定两个端口号,第一个用于 ldap 协议(protocol),第二个用于 ldaps 协议(protocol)(在 http://yong321.freeshell.org/oranotes/OracleConnectionSetup.html 找到提示,以下内容更为明确: http://docs.oracle.com/cd/B28359_01/network.111/b28317/ldap.htm )。

Oracle JDBC 驱动程序可能不理解此语法。请尝试以下替代连接字符串之一是否适合您:

ds.setUrl("jdbc:oracle:thin:@ldap://xyz.loc.biz.com:4050/...");
ds.setUrl("jdbc:oracle:thin:@ldaps://xyz.loc.biz.com:4049/...");

关于java - LDAP 类型的数据源 url 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40312773/

相关文章:

oracle - Tomcat 找不到 gdk_custom.jar,Oracle 无法创建它?

java - "getOutputStream() has already been called for this response"会导致服务器崩溃吗?

java - 使用 retrofit 和 rxjava 重复调用 API

java - 将 Java 对象添加到数据库

java - 无法在 dofilter 方法中获得正确的响应?

SPRING - 获取当前范围

sql - Oracle - 创建一个临时结果集以在查询中使用

java - 由于 ListAdapter 等于 null, Activity 崩溃

java - Spring 安全java.lang.AbstractMethodError

sql - Oracle将重音字符转换为html格式