Java 8到Java 11:包com.sun.jndi.ldap不可见
在从Java8移动到Java11之后,我得到了错误“package com.sun.jndi.ldap不可见”。但是我需要这个类LdapCtxFactory的包。包是否已移动,或者是否应为Ldap连接使用另一个类Java 8到Java 11:包com.sun.jndi.ldap不可见,java,java-8,ldap,package,java-11,Java,Java 8,Ldap,Package,Java 11,在从Java8移动到Java11之后,我得到了错误“package com.sun.jndi.ldap不可见”。但是我需要这个类LdapCtxFactory的包。包是否已移动,或者是否应为Ldap连接使用另一个类 向您致以最诚挚的问候,因为您对类LdapCtxFactory的唯一使用是如下配置设置 env.put(Context.INITIAL_CONTEXT_FACTORY, LdapCtxFactory.class.getName()); 您可以通过将LdapCtxFactory.clas
向您致以最诚挚的问候,因为您对类LdapCtxFactory的唯一使用是如下配置设置
env.put(Context.INITIAL_CONTEXT_FACTORY, LdapCtxFactory.class.getName());
您可以通过将LdapCtxFactory.class.getName()
替换为限定名“com.sun.jndi.ldap.LdapCtxFactory”
,来删除对类的依赖关系
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
依赖未记录的/JDK内部类是非常脆弱的。为什么需要直接使用LdapCtxFactory?我将它放在ldap连接的属性中:env.put(Context.INITIAL_Context_FACTORY,LdapCtxFactory.class.getName());如果这是您唯一的用途,为什么不将
LdapCtxFactory.class.getName()
替换为“com.sun.jndi.ldap.LdapCtxFactory”
?@Holger,为什么不将其添加为答案,以便它可以被接受?@Jaywalker我不确定这是否是OP的解决方案。因为现在已经确认了,我将其转换为答案。