无法通过 Java VM 选项配置 JNDI 读取和连接超时属性
Unable to configure JNDI Read & Connect Timeout properties through Java VM options
我已经通过 VM 选项配置了 JNDI 读取和连接超时属性,如下所示:
-Dcom.sun.jndi.ldap.connect.timeout=5000
-Dcom.sun.jndi.ldap.read.timeout=5000
但它不起作用。 JNDI 读取超时失败,出现以下异常:
javax.naming.NamingException: LDAP response read timed out, timeout used:-1ms.
但是如果我在 JNDI 环境属性中配置这些属性,如下所示:
env.put("com.sun.jndi.ldap.read.timeout", "5000");
env.put("com.sun.jndi.ldap.connect.timeout", "5000");
然后它正常工作我得到正确的读取超时错误消息,如下所示:
javax.naming.NamingException: LDAP response read timed out, timeout used:5000ms.
简单的回答是 JNDI 属性不是系统属性,因此将它们设置为系统属性没有任何效果。您可以在 Context
环境中或通过 JAR 文件根目录中的 /jndi.properties
文件提供它们。
我已经通过 VM 选项配置了 JNDI 读取和连接超时属性,如下所示:
-Dcom.sun.jndi.ldap.connect.timeout=5000
-Dcom.sun.jndi.ldap.read.timeout=5000
但它不起作用。 JNDI 读取超时失败,出现以下异常:
javax.naming.NamingException: LDAP response read timed out, timeout used:-1ms.
但是如果我在 JNDI 环境属性中配置这些属性,如下所示:
env.put("com.sun.jndi.ldap.read.timeout", "5000");
env.put("com.sun.jndi.ldap.connect.timeout", "5000");
然后它正常工作我得到正确的读取超时错误消息,如下所示:
javax.naming.NamingException: LDAP response read timed out, timeout used:5000ms.
简单的回答是 JNDI 属性不是系统属性,因此将它们设置为系统属性没有任何效果。您可以在 Context
环境中或通过 JAR 文件根目录中的 /jndi.properties
文件提供它们。