JNDI LDAP Response Parsing Problems

Help!
I am having problems dealing with LDAP responses using JNDI 1.2.2 with the
LDAP SPI.
It seems that the detinguished name is unparsable but as far as I can see
the server output is fine. Any clues how to get around this? Have I done
something wrong or is the LDAP spi unusably buggy?
Please could you also reply in mail as this is an urgent matter for the
project I am working on. If the LDAP spi is unusable I will have to change
direction completely...
Thanks in advance,
John
The experimental code causing problems is this (except I have substituted
hard coded values that were bombing into the code):
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://directory.verisign.com");
InitialLdapContext context_ldap = new InitialLdapContext(env, null);
Attributes match = new BasicAttributes(true);
match.put(new BasicAttribute("cn", "microsoft"));
NamingEnumeration enum = context_ldap.search("", match);
NameParser parser = context_ldap.getNameParser("");
while (enum.hasMore())
SearchResult result = (SearchResult)enum.next();
System.out.println("Parsing " + (result.isRelative() ? "[relative]: " :
"[non-relative]: ") + result.getName());
Name name = parser.parse(result.getName());
The output is this:
Parsing [relative]: "ou=MS INTERNAL TESTING
ONLY,cn=Microsoft,l=redmond,st=wa,c=US,ou=Digital ID Class 3 - Microsoft
Software Validation v2,ou=\"www.verisign.com/repository/CPS Incorp. by
Ref.,LIAB.LTD(c)96\",ou=VeriSign Commercial Software Publishers
CA,o=\"VeriSign, Inc.\",l=Internet"
javax.naming.InvalidNameException: Invalid name: "ou=MS INTERNAL TESTING
ONLY,cn=Microsoft,l=redmond,st=wa,c=US,ou=Digital ID Class 3 - Microsoft
Software Validation v2,ou=\"www.verisign.com/repository/CPS Incorp. by
Ref.,LIAB.LTD(c)96\",ou=VeriSign Commercial Software Publishers
CA,o=\"VeriSign, Inc.\",l=Internet"
at com.sun.jndi.ldap.LdapName$DnParser.parseAttrType(LdapName.java:478)
at com.sun.jndi.ldap.LdapName$DnParser.parseRdn(LdapName.java:432)
at com.sun.jndi.ldap.LdapName$DnParser.getDn(LdapName.java:400)
at com.sun.jndi.ldap.LdapName.parse(LdapName.java:303)
at com.sun.jndi.ldap.LdapName.<init>(LdapName.java:76)
at com.sun.jndi.ldap.LdapNameParser.parse(LdapNameParser.java:23)
at
com.softcomms.trackomatic.ext.ldap.gui.LDAPViewer$ResultsTableModel.parseRes
ult(LDAPViewer.java:304)
at
com.softcomms.trackomatic.ext.ldap.gui.LDAPViewer$1.run(LDAPViewer.java:240)
at com.softcomms.trackomatic.util.RunQueue.run(RunQueue.java:109)

at least you need cn= in front of the name.
Here some more questions you may ask yourself:
How do you know, that the requested object is in the database?
What is its DN?
Can you retrieve it using the ldap command line utilities like ldapsearch?
What does context.list("") return?

Similar Messages

  • Java JNDI LDAP connectivity problem.  NoSuchAttributeException

    Hello,
    I am trying to add a user to Active Directory server through LDAP. Following is the code I am using:
    ======================================================================
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://192.123.321.123:389");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, "user1");
    env.put(Context.SECURITY_CREDENTIALS, "user123");
    try {
    System.out.println("68");
    Context ctx = new InitialContext(env);
    System.out.println("71");
    BasicAttribute oc = new BasicAttribute("objectclass", "top");
    oc.add("person");
    oc.add("organizationalperson");
    oc.add("User");
    BasicAttribute ouSet = new BasicAttribute("ou");
    ouSet.add("test");
    BasicAttributes attrs = new BasicAttributes(true);
    attrs.put(oc);
    attrs.put(ouSet);
    attrs.put("cn", "ndubey001");
    attrs.put("sn", "ndubey001");
    attrs.put("sAMAccountName", "ndubey001");
    attrs.put("givenName", "ndubey001");
    attrs.put("name", "ndubey001");
    ctx.bind("uid=ndubey001,ou=test,o=myserver.com", attrs);
    System.out.println("74");
    ctx.close();
    } catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    ======================================================================
    I have tried with so many different combinations. Most of the times the parameters I am passing looks okay but I keep getting the same exception as follows:
    ======================================================================
    68
    71
    javax.naming.directory.NoSuchAttributeException: [LDAP: error code 16 - 00000057: LdapErr: DSID-0C090B38, comment: Error in attribute conversion operation, data 0, vece
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
         at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
         at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
         at com.sun.jndi.ldap.LdapCtx.c_bind(Unknown Source)
         at com.sun.jndi.ldap.LdapCtx.c_bind(Unknown Source)
         at com.sun.jndi.toolkit.ctx.ComponentContext.p_bind(Unknown Source)
         at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(Unknown Source)
         at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(Unknown Source)
         at javax.naming.InitialContext.bind(Unknown Source)
         at LDAPTest.main(LDAPTest.java:99)Coming out
    ======================================================================
    Can anyone tell what is the exact problem ?
    Cheers,
    Nitin                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Too many errors to even consider correcting your code (objectClasses, UID attribute, ctx.create)....
    Refer to the following for a description & sample code:
    JNDI, Active Directory (Creating new users & demystifying userAccountControl
    http://forum.java.sun.com/thread.jspa?threadID=582103&tstart=15

  • Problem with JNDI/LDAP AND connection pool

    I'm a newbie to Java but am attempting to write a servlet that retrieves info use to populate the contents of drop down menus. I'd like to only have to do this once. The servlet also retrieves other data (e.g. user profile info, etc ...). I'd like to be able to use the connection pool for all of these operations but I'm getting a compile error:
    public class WhitePages extends HttpServlet {
    ResourceBundle rb = ResourceBundle.getBundle("LocalStrings");
    public static String m_servletPath = null;
    public static String cattrs = null;
    public static String guidesearchlist[] = {};
    public static int isLocalAddr = 0;
    private int aeCtr;
    private String[] sgDNArray;
    private HashMap sgDN2DNLabel = new HashMap();
    private HashMap sgDN2SearchGuide = new HashMap();
    private String strport;
    private int ldapport;
    private String ldaphost;
    private String ldapbinddn;
    private String ldapbindpw;
    private String ldapbasedn;
    private int maxsearchcontainers;
    private int maxsearchkeys;
    private String guidesearchbases;
    private String guidecontainerclass;
    private String strlocaladdr;
    private String providerurl;
    // my init method establishes the connection
    // pool and then retrieve menu data
    public void init(ServletConfig config) throws ServletException {
    super.init(config);
    String strport = config.getInitParameter("ldapport");
    ldapport = Integer.parseInt(strport);
    String strconts = config.getInitParameter("maxsearchcontainers");
    maxsearchcontainers = Integer.parseInt(strconts);
    String strkeys = config.getInitParameter("maxsearchkeys");
    maxsearchkeys = Integer.parseInt(strkeys);
    ldaphost = config.getInitParameter("ldaphost");
    ldapbinddn = config.getInitParameter("ldapbinddn");
    ldapbindpw = config.getInitParameter("ldapbindpw");
    ldapbasedn = config.getInitParameter("ldapbasedn");
    guidesearchbases = config.getInitParameter("guidesearchbases");
    guidecontainerclass = config.getInitParameter("guidecontainerclass");
    strlocaladdr = config.getInitParameter("localaddrs");
    providerurl = "ldap://" + ldaphost + ":" + ldapport;
    /* Set up environment for creating initial context */
    Hashtable env = new Hashtable(11);
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, providerurl.toString());
    /* Enable connection pooling */
    env.put("com.sun.jndi.ldap.connect.pool", "true");
    StringTokenizer st = new StringTokenizer(guidesearchbases, ":" );
    String guidesearchlist[] = new String[st.countTokens()];
    for ( int i = 0; i < guidesearchlist.length; i++ ) {
    guidesearchlist[i] = st.nextToken();
    // Get a connection from the connection pool
    // and retrieve the searchguides
    StringBuffer asm = new StringBuffer(""); // This is the advanced search menu htmlobject buffer
    StringBuffer strtmpbuf = new StringBuffer(""); // This is the simple search menu htmlobject buffer
    try {
    StringBuffer filter = new StringBuffer("");
    filter.append("(objectclass=" + guidecontainerclass + ")");
    String[] attrList = {"dn","cn","searchguide"};
    SearchControls ctls = new SearchControls();
    ctls.setReturningAttributes(attrList);
    ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    String attrlabelkey;
    sgDNArray = new String[guidesearchlist.length];
    for( int i = 0; i < guidesearchlist.length; i++ ) {
    // Search each of the namingspaces where
    // searchguides exist then build
    // the dynamic menus from the result
    DirContext ctx = new InitialDirContext(env);
    NamingEnumeration results = ctx.search(guidesearchlist, filter, ctls);
    I get a compile error:
    WhitePages.java:164: cannot resolve symbol
    symbol : method search (java.lang.String,java.lang.StringBuffer,javax.naming.directory.SearchControls)
    location: interface javax.naming.directory.DirContext
    NamingEnumeration results = ctx.search(guidesearchlist[i], filter, ctls);
    ^
    WhitePages.java:225: cannot resolve symbol
    symbol : variable ctx
    location: class OpenDirectory
    ctx.close();
    ^
    Can anyone help? If there is someone out there with JNDI connection pool experience I would appreciate your assistance!

    Manish
    The issue may not be related to the number of connections or the initial
    connections. Check your heap size (ms, mx). Turn on verbosegc. Your heap may
    not be big enough to accept the 25,000 rows.
    Bernie
    "Manish Kumar Singh" <[email protected]> wrote in message
    news:3e6c34ca$[email protected]..
    We are creating the result set with 25000 rows(each row has 56 columns) bygetting the connection using data source. With the initial capacity of the
    connection pool is 5 and the max capacity as 30 and grow connection as 1,
    the server gets out of memory exception, when we issue a new request, even
    after closing the previous connections.
    Now, if we change the initial capacity to 1 and rest all the things assame, the issue gets resolved and the server works fine.
    Could you please help me out in this regard????
    thanks in advance
    manish

  • Java.lang.NullPointerException at com.sun.mail.iap.Response.parse

    I am getting this error when I try to download a message using IMAP from exchange server
    java.lang.NullPointerException
         at com.sun.mail.iap.Response.parse(Response.java:99)
         at com.sun.mail.iap.Response.<init>(Response.java:68)
         at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:31)
         at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:105)
         at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:153)
         at com.sun.mail.iap.Protocol.command(Protocol.java:215)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:882)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:874)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:656)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:645)
    This error occurs intermittantly. I placed one large mail (around 600 MB) and few normal size mails on exchange server. In few testing runs, this error occured while downloading the large mail as well as one normal mail. In one test run, all mails got downloaded successfully.
    Could anyone please suggest the cause and resolution?
    Thanks.

    I turned on the session debugging. I am running my application on Linux, so the debugging info was moved to a log file. This log file is very large (around 1GB) and I am unable to open it.
    One more thing: I am trying Message.writeTo() method to download the message. If an OutOfMemoryError occurs, I catch it and try to download the message using GetInputStream. NullPointerException is occuring in both the cases.
    Exception stack trace with writeTo():
    java.lang.NullPointerException
         at com.sun.mail.iap.Response.parse(Response.java:99)
         at com.sun.mail.iap.Response.<init>(Response.java:68)
         at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:31)
         at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:105)
         at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:153)
         at com.sun.mail.iap.Protocol.command(Protocol.java:215)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:882)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:874)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:656)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:645)
         at com.sun.mail.imap.IMAPMessage.writeTo(IMAPMessage.java:536)
    Exception stack trace with getInputStream():
    java.lang.NullPointerException
         at com.sun.mail.iap.Response.parse(Response.java:99)
         at com.sun.mail.iap.Response.<init>(Response.java:68)
         at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:31)
         at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:105)
         at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:153)
         at com.sun.mail.iap.Protocol.command(Protocol.java:215)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:882)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetch(IMAPProtocol.java:874)
         at com.sun.mail.imap.protocol.IMAPProtocol.fetchBody(IMAPProtocol.java:653)
         at com.sun.mail.imap.protocol.IMAPProtocol.peekBody(IMAPProtocol.java:637)
         at com.sun.mail.imap.IMAPMessage.loadHeaders(IMAPMessage.java:1055)
         at com.sun.mail.imap.IMAPMessage.getAllHeaders(IMAPMessage.java:642)
    First I try to download the headers in case of an OutOfMemoryError. The above trace shows that.
    Could anyone point out the problem and help resolving it?

  • Message failed in PI: Status code 200 But Error During Response Parsing:

    Hi
    I have integration scenario for sending PO/PO change/Proact from R/3 to SNC, everything was working till yesterday morning and suddenly all messages are failing in SAP PI with below error. We have not done any changes. The strange thing is this is failing in dev as well as in QA.
    HTTP Status Code 200 Received But Error During Response Parsing: No XI Response Received XML element Envelope missing in SOAP message header (SAP XI Extension)
    I can see some messages in sxmb_moni (we have not configured this) from sender component "Integration_Server_SID" and it's failed with below message
    Proxy calls are not permitted on sender or
    receiver side on the IS (client)
    Thanks,
    Nishant

    HTTP Status Code 200 Received But Error During Response Parsing: No XI Response Received
    XML element {http://schemas.xmlsoap.org/soap/envelope/}Envelope missing in SOAP message header (SAP XI Extension)
    Same problem answered in this discussion....check if it helps:
    Re: BW to File scenario
    Regards,
    Abhishek.

  • HTTP Status Code 200 Received But Error During Response Parsing

    Hi Experts,
    We are testing a simple Proxy(ECC) to File scenario in QA. This interface was working fine in Dev but we are getting the following error here in QA:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Call Adapter  -->
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="INTERNAL">OK_BUT_NO_XI_MESSAGE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>HTTP Status Code 200 Received But Error During Response Parsing: No XI Response Received XML element Envelope missing in SOAP message header (SAP XI Extension)</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    We searched other threads but could not get any solution. Please provide suggestions.
    Thank You.
    Regards,
    Anandan

    the problem was due to high volume message (247 MB ) ...Java stack was not able to process this huge message ,that is the reason ,it started automatically  and as a result  , "HTTP Status Code 200 Received But Error During Response Parsing" due to unavailability of AFW during Call adapter step in the pipeline processing...
    We have done the following activities in order to solve this problem....
    increase the value of  icm/HTTP/max_request_size_KB to 512MB
                                        icm/wp_roll_timeout   to maximum
                                        HTTP TIMEOUT to 1800 sec
                                       icm/wp_roll_timeout   to maximum
                                         mpi/total_size_MB  to maximum
                                       mpi/buffer_size  to maximum
    and then increased the maxthreadcount ,maxcontentlength using config tool...
    and also increased the java heap size to maximum....
    After doing everything ,the file has been successfully processed....
    the problem has been resolved...

  • NullPointerException at com.sun.jndi.ldap.Connection.run(Connection.java:52

    We are using the Sun jndi 1.2.1 files from a Java client to
    access the IBM SecureWay Directory 3.2 server. Our test case is
    retrieving entries using the ctx.getAttributes (String, String[])
    method. Occasionally we are receiving the following error.
    java.lang.NullPointerException
    at com.sun.jndi.ldap.Connection.run(Connection.java:525)
    at java.lang.Thread.run(Thread.java:481)
    The java.lang.NullPointerException is coming from the Sun JNDI file.
    Our program is not catching this exception.
    Has anyone seen this problem before and have any ideas on how this can be resolved?

    Download and use LDAP 1.2.3 or JDK 1.3.1.
    The problem should go away.

  • NullPointerException in com.sun.mail.iap.Response.parse

    Hey all. I am accessing an IMAP mail server from Solaris 8 using java 1.5.0-08, but I intermittently get the following exception:
    java.lang.NullPointerException
            at com.sun.mail.iap.Response.parse(Response.java:130)
            at com.sun.mail.iap.Response.<init>(Response.java:87)
            at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:48)
            at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:122)
            at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:230)
            at com.sun.mail.iap.Protocol.command(Protocol.java:263)
            at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:310)
            at com.sun.mail.imap.protocol.IMAPProtocol.close(IMAPProtocol.java:926)
            at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1000)
            at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:935)Any thoughts of what I am doing wrong?

    I'm just looking for more data to get
    a handle on the problem.I ran my program again, and got a NPE on another email. It is also big...
    A479 FETCH 856 (BODY[])
    * 856 FETCH (BODY[] {26497359}
    Return-Path: <[email protected]>
    ... some of the body ...
    BTW, the ebinder subcollection is not in the select list. Do I have to configure
    or create another foA480 CLOSE
    DEBUG: added an Authenticated connection -- size: 1
    java.lang.NullPointerException
            at com.sun.mail.iap.Response.parse(Response.java:130)
            at com.sun.mail.iap.Response.<init>(Response.java:87)
            at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:48)
            at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:122)
            at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:230)
            at com.sun.mail.iap.Protocol.command(Protocol.java:263)
            at com.sun.mail.iap.Protocol.simpleCommand(Protocol.java:310)
            at com.sun.mail.imap.protocol.IMAPProtocol.close(IMAPProtocol.java:926)
            at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:1000)
            at com.sun.mail.imap.IMAPFolder.close(IMAPFolder.java:935)
    A481 LIST "" shared
    java.lang.NullPointerException
            at com.sun.mail.iap.Response.parse(Response.java:130)
            at com.sun.mail.iap.Response.<init>(Response.java:87)
            at com.sun.mail.imap.protocol.IMAPResponse.<init>(IMAPResponse.java:48)
            at com.sun.mail.imap.protocol.IMAPResponse.readResponse(IMAPResponse.java:122)
            at com.sun.mail.imap.protocol.IMAPProtocol.readResponse(IMAPProtocol.java:230)
            at com.sun.mail.iap.Protocol.command(Protocol.java:263)
            at com.sun.mail.imap.protocol.IMAPProtocol.doList(IMAPProtocol.java:799)
            at com.sun.mail.imap.protocol.IMAPProtocol.list(IMAPProtocol.java:776)
            at com.sun.mail.imap.IMAPFolder$1.doCommand(IMAPFolder.java:429)
            at com.sun.mail.imap.IMAPFolder.doProtocolCommand(IMAPFolder.java:2387)
            at com.sun.mail.imap.IMAPFolder.doCommand(IMAPFolder.java:2332)
            at com.sun.mail.imap.IMAPFolder.exists(IMAPFolder.java:427)
    ... lots of these ...
    A490 LIST "" shared
    rm or resource or something to solve this problem? please
    advice.
    (See attached file: private-xml.rtf)(See attached file: private-html.rtf)(See
    ... more body from the first email ...And this process of getting little chunks of data seems to continue on, interspersed with NPEs. It looks like some connection is not being closed.

  • Openldap, jndi, ssl openssl keystore problem

    I am trying to get a connection between openldap and a java application using jndi. The connection needs to be secure so I want to use ssl. I only want the server to have to have a certificate.
    I am having troubles creating the right certificates (self-signed) .
    When I create a certificate that works with openldap (see this howto: http://www.openldap.org/pub/ksoper/OpenLDAP_TLS_howto.html#4.2 )
    I can only import the cacert.pem into my java keystore, the other to files i can not import. Even when I have converted the servercrt.pem to servercrt.der.
    When I use this openldap works and I can connect to it use ldapbrowser (also written in Java)
    If I only import the cacert.pem java gives the error:
    "AWT-EventQueue-0, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found"
    when trying to connect.
    Otherwise if I create a certificate with the java keystore I can't get openldap to work with it.
    I used this howto to do that: http://www.churchillobjects.com/c/11201g.html.
    So my question is. Does somebody know how to create a certificate that I can use with openldap and also be able to import into the java keystore?

    Hello, I had a similar problem: when I tried to connect, a javax.net.ssl.SSLHandshakeException arose. To solve the problem I:
    1) Import into my JNDI keystore the certifictate of the CA that had signed my openLDAP certificate (I did not import the server's certificate).
    2) Nothing else. I think the problem was in the certificates and not in the java code...
    This is what I wrote:
    String dirServidor = request.getParameter("dirserver");
    String clave = request.getParameter("clave");
    String uid = request.getParameter("uid");
    System.setProperty("javax.net.debug","all");
    System.setProperty("javax.net.ssl.trustStore", YOUR_KEYSTORE?S_PATH);
    System.setProperty("javax.net.ssl.trustStorePassword", YOUR_KEYSTORE?S_PASSWORD);
    Hashtable props = new Hashtable();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    props.put(Context.PROVIDER_URL, dirServidor);
    props.put(Context.SECURITY_PROTOCOL, "ssl");
    props.put(Context.SECURITY_AUTHENTICATION, "simple");
    props.put(Context.SECURITY_PRINCIPAL, uid);
    props.put(Context.SECURITY_CREDENTIALS, clave);
    DirContext ctx = null;
    try{
         ctx = new InitialDirContext(props);
    catch(NamingException e){......}
    Bye

  • Com.sun.jndi.ldap

    Hi,
    Is anyone familiar with JNDI LDAP automatic discovery codes
    env.put(Context.PROVIDER_URL,
        ldap:///o=JNDITutorial,dc=example,dc=com);
    It seems that by using DNS that associate with multiple domain controllers, it would lock out user account if they enter wrong pw because LDAP provider will send the request to each of the associated DC at the same time.  I wonder if anyone run through this issue and if it is a JDK bug and if someone does, how to you work around it?
    Thanks,
    Jennifer

    Hi,
    did you also try the following timeout variables?
    env.put("com.sun.jndi.dns.timeout.initial", "2000");
    env.put("com.sun.jndi.dns.timeout.retries", "3");...
    Besides you specific problem you will find a probably interesting article about handling network timeouts her:
    http://www.javacoffeebreak.com/articles/network_timeouts/
    Regards
    Klaus

  • WIJ 20002 xml Parser Problem - Rich Client

    Hi,
    I have a problem with the rich client on a new installation:
    Business Objects Enterprise XI 3.1 SP3 on Windows 2008 Standard.
    If I connect with the rich client "import document"is disabled.
    if I try to create a new document from the rich client it returns the error below (I used the rich client on two workstations):
    WIJ 20002
    Version: null
    Analisi dello stack:
    java.lang.RuntimeException: java.lang.RuntimeException: XML parser problem:
    XMLJaxpParser.parse(): Element type "ABOUT_Patentnumbers" must be followed by either attribute specification, ">" or "/>".
    at com.businessobjects.wp.xml.jaxp.XMLJaxpParser.parse (Unknown Source)
    at.com.businessobjects.webi.richclient.XMLviaOccaRC.getServerConfiguration (Unknown Source)
    Have you any solution?

    The fixpack 3.5 client resolves the problem.

  • Report query parsing problem

    I didn't find any report of this problem...
    Using APEX 3.0.1.00.07, I have a report of type "SQL Query (PL/SQL function body returning SQL query)" with the "Use Generic Column Names (parse query at runtime only)" radio button selected.
    When the region source contains the string "ORDER BY" in any form that I've tried (even in a comment), attempting to save the region fails with "Your query can't include an "ORDER BY" clause when having column heading sorting enabled."
    I do indeed have column sorting enabled on certain columns, but I don't see how that is relevant under these circumstances since the query produced at runtime does not have an ORDER BY clause.
    Am I overlooking something or is this a parsing problem?
    Rodney

    Rodney,
    It's just checking for order by being included in your query, and if so and you have column heading sorting enabled, it's raising this error because you can't have both (even if it's commented out).
    Regards,
    Marc

  • SAX parser problem in JDK1.5

    I have parse the xml file using SAX in jdk1.5 environment. During the parsing, it missed the some text content.
    for example
    <employeeid>
    <empid>1001</empid>
    <empid>1002</empid>
    </employeeid>
    If i have parse the above xml file using SAX in jdk1.5 environment. The output is
    1001
    100
    during the parsing , SAX parser misses digit of 2.
    if i have parse the above xml file using SAX in jdk1.4 environment , it is working fine.
    what is the problem in jdk1.5
    please help
    bala

    What I expect the problem to be was discussed recently in a topic titled "SAX Parser Problems" that was started on March 14 at 6:59 AM by JackoBS.
    Read that and see if it fixes your problem. If so, it is not a JDK1.5 problem, but a user error.
    Dave Patterson

  • JNDI NIS object access problem

    JNDI NIS object access problem:
    Hi all,
    After long fight, i'm now able to connect to my NIS server on my network. the initial context factory is 'com.sun.jndi.nis.NISCtxFactory' and provider url are given and i obtain namingennumeration of items in the NIS directory.
    purpose of my project:
    using ypcat command we can view the services,passwd,host... objects in unix.
    my project requirement is that i shd open this 'services' object in java (using JNDI probably) and shd access its content.
    i'm able to obtain the object and the type of this object is 'NISCtxServices' defined in 'com.sun.jndi.nis.NISCtxFactory' package, but all the classes and methods except some are not public and so im not able to use almost all the methods in this class 'NISCtxServices' .
    Can any one help me in accessing the information inside this object.
    Thanks in advance! and i'm waiting!

    It's because JFrame does not have a public progessbar variable, only your subclass has that.
    //change this
    JFrame frame = new ProgressBarDemo();
    //to this
    ProgressBarDemo frame = new ProgressBarDemo();

  • Parsing Problems? ImageIcon and BufferedImage

    Hi to everyone
    Could I ask if I will to send ImageIcon with BufferedImage as its arguement. Then what should I receieve from the server? ImageIcon only or ImageIcon with BufferedImage as its arugement?
    Any help will be appreciated. Thank You.

    I am sending ImageIcon over to the server, hence the server will receive as ImageIcon.
    However, when I want to pass the ImageIcon which being parse to Image, this step is ok. Lastly when I want to parse the Image to BufferedImage image, I am encountering parsing problems, hence could u advise me further.
    The error message "Receiving failed: java.lang.ClassCastException"
    Any help will be appreciated. Thank You.
         public void getImage()
              //Object input = null;
            Image images = null;
              try{
                   imgIcon = (ImageIcon)oin.readObject();
                   System.out.println("Icon Width: "+imgIcon.getIconWidth());
                   while((images = imgIcon.getImage()) != null)
                        System.out.println("Images Width: "+Image.getWidth(images));
                        BufferedImage bimage = (BufferedImage)images; // PROBLEM LIES HERE
                        System.out.println("Bimage Width: "+bimage.getWidth());
                        ImageServerConnection.writeImage(bimage, "happy.jpg");
                        //String fname = "joalicia";
                        //create an new folder to store those sent images.
                        //File f = new File ("c:\\Sweet", fname);
                        //create(f);
              }catch(Exception e){
                   System.err.println("Receiving failed: "+ e);
         }

Maybe you are looking for