title: javax.naming.CommunicationException: simple bind failed
body: <p>When trying to connect to the LDAP server using a simple LDAP application I am getting an error which says "simple bind failed". I am assuming this is related to some sort of BIND. I have a bind property in one of the property file for a different application, but am not sure how to pass on that property to this program.</p>
  
  <p>Do I need to add any further details?</p>
  
  <p>Code </p>
  
  <pre><code>import javax.naming.directory.*;   
  import javax.naming.*;   
  import java.util.Vector;   
  import java.util.Enumeration;   
  import java.util.Properties;   
  public class SearchLDAP {   
      public static void main(String[] args) {   
          String base = "";   
  
          String filter = "(objectclass=*)";   
  
          Properties env = new Properties();   
  
          env.put(DirContext.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");   
          env.put(DirContext.PROVIDER_URL,"ldaps://misguided.com.au:343"); 
  
          try {   
  
              System.out.println("11");
              DirContext dc = new InitialDirContext(env);
              System.out.println("22");
  
              SearchControls sc = new SearchControls();   
              sc.setSearchScope(SearchControls.OBJECT_SCOPE);   
              NamingEnumeration ne = null;   
  
              ne = dc.search(base, filter, sc);   
  
              while (ne.hasMore()) {   
                  SearchResult sr = (SearchResult) ne.next();   
                  System.out.println(sr.toString()+"\n");   
              }   
              dc.close();   
          } catch (NamingException nex) {   
              System.err.println("Error: " + nex.getMessage());   
              nex.printStackTrace();
          }   
      }   
  }  
  </code></pre>
  
  <p>The error which I am getting is </p>
  
  <p>Error </p>
  
  <pre><code>11
  Error: simple bind failed: XXXX.XXX.XXXX.net:808
  javax.naming.CommunicationException: simple bind failed: misguided.com.au:343 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
      at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:215)
      at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2740)
      at com.sun.jndi.ldap.LdapCtx.&lt;init&gt;(LdapCtx.java:316)
      at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:193)
  </code></pre>