Problem connecting to Lotus Directory from Java.

I am very new to LDAP and I have a problem. I am writing java code to connect to lotus directory and I am getting an exception.
Following is the code :
package jndibridge;
* @author RKSUR
import javax.naming.*;
import java.util.Hashtable;
import javax.naming.directory.*;
import javax.naming.spi.*;
import java.util.Enumeration;
public class Main {
public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
public static String LDAP_HOST = "ldap://mtasmtp1-clev.cle.ms.mycompany.com:389";
public static String LDAP_BASE_DN = "o=philps.com";
public static String LDAP_USER_ID = "xyz";
public static String LDAP_PASSWORD = "xyz";
/** Creates a new instance of Main */
public Main() {
* @param args the command line arguments
public static void main(String[] args) {
// TODO code application logic here
try{
Hashtable env = new Hashtable();
env.put("Context.INITIAL_CONTEXT_FACTORY",INITCTX);
env.put("Context.PROVIDER_URL",LDAP_HOST);
env.put(Context.PROVIDER_URL, LDAP_HOST + LDAP_BASE_DN);
env.put(Context.SECURITY_PRINCIPAL, LDAP_USER_ID);
env.put(Context.SECURITY_CREDENTIALS, LDAP_PASSWORD);
DirContext ctx = new InitialDirContext(env);
System.out.println("Dir Context=====" + ctx);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
System.out.println("Constarints....." + constraints.getCountLimit());
NamingEnumeration results = ctx.search("o=philps.com","sn=keith",constraints);
while(results != null && results.hasMore()){
SearchResult sr = (SearchResult) results.next();
String dn = sr.getName();
System.out.println("Distinguished Name is " + dn);
Attributes attr = sr.getAttributes();
for(NamingEnumeration ne = attr.getAll();ne.hasMoreElements();){
Attributes localAttr = (Attributes)ne.next();
for(Enumeration vals = localAttr.getAll();vals.hasMoreElements();){
System.out.println("\t" + vals.nextElement());
System.out.println("\n");
catch(Exception ex){
ex.printStackTrace();
System.exit(1);
Following is the exception description:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.directory.InitialDirContext.getURLOrDefaultInitDirCtx(InitialDirContext.java:87)
at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
at jndibridge.Main.main(Main.java:53)
Can anyone point me where I am going wrong?

I am very new to LDAP and I have a problem. I am writing java code to connect to lotus directory and I am getting an exception.
Following is the code :
package jndibridge;
* @author RKSUR
import javax.naming.*;
import java.util.Hashtable;
import javax.naming.directory.*;
import javax.naming.spi.*;
import java.util.Enumeration;
public class Main {
public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
public static String LDAP_HOST = "ldap://mtasmtp1-clev.cle.ms.mycompany.com:389";
public static String LDAP_BASE_DN = "o=philps.com";
public static String LDAP_USER_ID = "xyz";
public static String LDAP_PASSWORD = "xyz";
/** Creates a new instance of Main */
public Main() {
* @param args the command line arguments
public static void main(String[] args) {
// TODO code application logic here
try{
Hashtable env = new Hashtable();
env.put("Context.INITIAL_CONTEXT_FACTORY",INITCTX);
env.put("Context.PROVIDER_URL",LDAP_HOST);
env.put(Context.PROVIDER_URL, LDAP_HOST + LDAP_BASE_DN);
env.put(Context.SECURITY_PRINCIPAL, LDAP_USER_ID);
env.put(Context.SECURITY_CREDENTIALS, LDAP_PASSWORD);
DirContext ctx = new InitialDirContext(env);
System.out.println("Dir Context=====" + ctx);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
System.out.println("Constarints....." + constraints.getCountLimit());
NamingEnumeration results = ctx.search("o=philps.com","sn=keith",constraints);
while(results != null && results.hasMore()){
SearchResult sr = (SearchResult) results.next();
String dn = sr.getName();
System.out.println("Distinguished Name is " + dn);
Attributes attr = sr.getAttributes();
for(NamingEnumeration ne = attr.getAll();ne.hasMoreElements();){
Attributes localAttr = (Attributes)ne.next();
for(Enumeration vals = localAttr.getAll();vals.hasMoreElements();){
System.out.println("\t" + vals.nextElement());
System.out.println("\n");
catch(Exception ex){
ex.printStackTrace();
System.exit(1);
Following is the exception description:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
at javax.naming.directory.InitialDirContext.getURLOrDefaultInitDirCtx(InitialDirContext.java:87)
at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
at jndibridge.Main.main(Main.java:53)
Can anyone point me where I am going wrong?

Similar Messages

  • Unable to connect to Lotus directory.

    I have written a java code to connect to Lotus directory. When I compile the code following exception is thrown
    "javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
    at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:284)
    at javax.naming.directory.InitialDirContext.getURLOrDefaultInitDirCtx(InitialDirContext.java:87)
    at javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
    at jndibridge.Main.main(Main.java:53)
    Can anyone help me?

    Russ,
    Chances are good that you have installed the software on a DHCP machine. Oracle9iAS can only be installed on fixed IP address machines.
    HTH,
    Ashesh Parekh
    Oracle9ias team

  • When connecting to OID directory from ODSM, orcladmin account is locked

    Hi everyone,
    I met a problem when I try to connect to OID directory from ODSM. [LDAP: error code 53 - Password Policy Error :9001: cn=orcladmin : Your account is locked. Contact your OID administrator.]
    I tried to use command to unlock the super user
    oidpasswd connect=OIDDB unlock_su_acct=true
    OID DB user password:****
    OID super user account unlocked successfully.
    But I still cannot connect to OID directory with cn=orcladmin. The LDAP error 9001: cn=orcladmin : Your account is locked still exists. Could anyone tell me how to resolve the problem? Thanks!

    We are facing the same problem in a production system with clustering and load balancing. The problem appears if there is no activity on bpel tasks for more than 30 minutes. We found that there exists a timeout parameter in the load balancer defined at 30 mins.
    According to documentation, there exist two configuration parameters that are relevant to the problem:
    1. in jazn.xml
    <property name="jndi.ctx_pool.timeout" value="1600000" />
    2. in is_config.xml
    <connection url="ldap://ldaphost:port" binddn="***" password="***" encrypted="true">
    <pool initsize="1" maxsize="25" prefsize="10" timeout="60"/>
    </connection>
    None of them solved the problem!
    Does anyone have a solution?

  • Problem calling two perl modules from java in seperate threads(JVM CRASHES)

    Dear Friends,
    I have one severe problem regarding calling perl modules from java
    I had to call two perl modules simultaneously (i.e.) from two threads,,, but jvm crashes when one of the perl calls is exiting earlier
    I am unable to spot out why ....
    For calling perl from java ...., We are first calling C code from java using JNI and then Perl code from C
    All works fine if we call only one perl call at a time.... If we call them in a synchronized manner the JVM is not crashing .... But we don't want blocking..
    The following is the code snippet
    <JAVA FILE>
    class Sample
         static {
              System.loadLibrary("xyz");  // Here xyz is the library file generated by compiling c code
         public native void call_PrintList();
         public native void call_PrintListNew();
         Sample()
              new Thread1(this).start();     
         public static void main(String args[])
              System.out.println("In the main Method");
              new Sample().call_PrintList();
         class Thread1 extends Thread
              Sample sample;
              Thread1(Sample sam)
                   sample=sam;
              public void run()
                   sample.call_PrintListNew();     
    }<C FILE>
    #include <EXTERN.h>
    #include <perl.h>
    static PerlInterpreter *my_perl;
    static char * words[] = {"alpha", "beta", "gamma", "delta", NULL } ;
    static void
    call_PrintList(){
         printf("\nIn the Call method of string.c\n");
            char *wor[] = {"hello", "sudha", NULL } ;
               char *my_argv[] = { "", "string.pl" };
               PERL_SYS_INIT3(&argc,&argv,&env);
               my_perl = perl_alloc();
                   PL_perl_destruct_level = 1; //// We have mentioned this also and tried removing destruct call
               perl_construct( my_perl );
               perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
              PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
               perl_run(my_perl);
         dSP ;
            perl_call_argv("PrintList",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
    //     perl_destruct(my_perl);
    //          perl_free(my_perl);
    //           PERL_SYS_TERM();
    static void
    call_PrintListNew(){
    printf("In the new call method\n");
    char *wor[] = {"Hiiiiiiiiiiiiiii", "Satyam123333", NULL } ;
            char *my_argv[] = { "", "string.pl" };
            PERL_SYS_INIT3(&argc,&argv,&env);
            my_perl = perl_alloc();
    PL_perl_destruct_level = 1;
            perl_construct( my_perl );
            perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
            PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
            perl_run(my_perl);
            dSP ;
            perl_call_argv("PrintListNew",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
      //      perl_destruct(my_perl);
      //      perl_free(my_perl);
       //     PERL_SYS_TERM();
    void callNew()
    call_PrintListNew();
    void call ( )
    call_PrintList();
    //char *wor[] = {"hello","sudha",NULL};
    /*   char *my_argv[] = { "", "string.pl" };
          PERL_SYS_INIT3(&argc,&argv,&env);
          my_perl = perl_alloc();
          perl_construct( my_perl );
          perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
         PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
          perl_run(my_perl);*/
       //   call_PrintList();                      /*** Compute 3 ** 4 ***/
    /*      perl_destruct(my_perl);
          perl_free(my_perl);
          PERL_SYS_TERM();*/
        }And Finally the perl code
    sub PrintList
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
    sub PrintListNew
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
            }Please help me in this regard

    Dear Friends,
    I have one severe problem regarding calling perl modules from java
    I had to call two perl modules simultaneously (i.e.) from two threads,,, but jvm crashes when one of the perl calls is exiting earlier
    I am unable to spot out why ....
    For calling perl from java ...., We are first calling C code from java using JNI and then Perl code from C
    All works fine if we call only one perl call at a time.... If we call them in a synchronized manner the JVM is not crashing .... But we don't want blocking..
    The following is the code snippet
    <JAVA FILE>
    class Sample
         static {
              System.loadLibrary("xyz");  // Here xyz is the library file generated by compiling c code
         public native void call_PrintList();
         public native void call_PrintListNew();
         Sample()
              new Thread1(this).start();     
         public static void main(String args[])
              System.out.println("In the main Method");
              new Sample().call_PrintList();
         class Thread1 extends Thread
              Sample sample;
              Thread1(Sample sam)
                   sample=sam;
              public void run()
                   sample.call_PrintListNew();     
    }<C FILE>
    #include <EXTERN.h>
    #include <perl.h>
    static PerlInterpreter *my_perl;
    static char * words[] = {"alpha", "beta", "gamma", "delta", NULL } ;
    static void
    call_PrintList(){
         printf("\nIn the Call method of string.c\n");
            char *wor[] = {"hello", "sudha", NULL } ;
               char *my_argv[] = { "", "string.pl" };
               PERL_SYS_INIT3(&argc,&argv,&env);
               my_perl = perl_alloc();
                   PL_perl_destruct_level = 1; //// We have mentioned this also and tried removing destruct call
               perl_construct( my_perl );
               perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
              PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
               perl_run(my_perl);
         dSP ;
            perl_call_argv("PrintList",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
    //     perl_destruct(my_perl);
    //          perl_free(my_perl);
    //           PERL_SYS_TERM();
    static void
    call_PrintListNew(){
    printf("In the new call method\n");
    char *wor[] = {"Hiiiiiiiiiiiiiii", "Satyam123333", NULL } ;
            char *my_argv[] = { "", "string.pl" };
            PERL_SYS_INIT3(&argc,&argv,&env);
            my_perl = perl_alloc();
    PL_perl_destruct_level = 1;
            perl_construct( my_perl );
            perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
            PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
            perl_run(my_perl);
            dSP ;
            perl_call_argv("PrintListNew",  G_DISCARD, wor) ;
    PL_perl_destruct_level = 1;
      //      perl_destruct(my_perl);
      //      perl_free(my_perl);
       //     PERL_SYS_TERM();
    void callNew()
    call_PrintListNew();
    void call ( )
    call_PrintList();
    //char *wor[] = {"hello","sudha",NULL};
    /*   char *my_argv[] = { "", "string.pl" };
          PERL_SYS_INIT3(&argc,&argv,&env);
          my_perl = perl_alloc();
          perl_construct( my_perl );
          perl_parse(my_perl, NULL, 2, my_argv, (char**)NULL);
         PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
          perl_run(my_perl);*/
       //   call_PrintList();                      /*** Compute 3 ** 4 ***/
    /*      perl_destruct(my_perl);
          perl_free(my_perl);
          PERL_SYS_TERM();*/
        }And Finally the perl code
    sub PrintList
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
    sub PrintListNew
                my(@list) = @_ ;
                foreach (@list) { print "$_\n" }
            }Please help me in this regard

  • How to connect iseries green screen from java program

    how to connect iseries green screen from java program to get the data in the DB files ,here the DB is DB2/400

    Just some Friday fun. Use the telnet program that comes with Windows and supports VT escape sequences.
    import java.io.*;
    import java.net.*;
    public class AutoTelnet {
         private static Socket s;
         public static void main(String[] args) throws Exception {
              Thread t = new Thread() {
                   @Override public void run() {
                        try {
                             s = new ServerSocket(5555).accept();
                        } catch (IOException ex) {
                             ex.printStackTrace();
              t.start();
              Process p = new ProcessBuilder("cmd", "/C", "start", "telnet", "127.0.0.1", "5555").redirectErrorStream(true).start();
              t.join();
              PrintStream ps = new PrintStream(s.getOutputStream());
              ps.println("Screen will be cleared in 5 seconds");
              ps.println("5");
              Thread.sleep(1000);
              ps.println("4");
              Thread.sleep(1000);
              ps.println("3");
              Thread.sleep(1000);
              ps.println("2");
              Thread.sleep(1000);
              ps.println("1");
              Thread.sleep(1000);
              ps.println("\u001b[2J");
              Thread.sleep(5000);
    }

  • Problem when calling a report from java

    Hi all,
    i have created a report using ireport which contains arabic data.
    when i execute the report from ireport to generate a pdf file it works.
    however when i call this report from java i have an exception"
    Could not create the report Could not load the following font :
    pdfFontName : ARIAL.TTF
    pdfEncoding : Identity-H"
    the pdfFont i used it in ireport, also the pdfEncoding.
    did anyone passed with the same problem
    thanks for help

    Hello Oracle experts,
    The parameters are getting passed successfully in my report.
    But I want to know hous to use it in my query group.
    I just want the syntax.
    Thanks

  • Problem connecting to lotus notes server.

    Hey Everyone
    I am using:
    Windows XP, service pack 2
    PC suite 6.85.14.1
    Bluetooth connection
    Phone Nokia E65
    I am trying to connect my laptop to the office lotus notes server. But it seems PC sync can’t locate my id file or the notes server. The fields under sync setup are simply empty.
    My Notes client didn’t have any problems connecting to the server.
    There are about 10 other people in the office all using the same setup (Nokia E65 and a the same type laptop) without problems.
    I have tried the solution in this topic but it didn’t help: /discussions/board/message?board.id=pcsuite&message.id=24092&query.id=149864#M24092.
    Any idea what the problem might be?
    Thx in advance
    \Andreas

    open regedit
    go to HKEY_CURRENT_USER\Software\Nokia\PCSync\Settings
    open => NotesIni
    instead of for exemple => C:\Application_Data\notes\
    type the entire path => C:\Application_Data\notes\Notes.ini
    it should work

  • Connecting sap crm database from java | platform used NWDS

    I need to get some values from one of the SAP CRM 2007 database table and display it in one jsp file. I am working on a e commerce webshop in NWDS. I am new to NWDS. Can you give some sample code showing how to make connection to crm database and to do a select query on a table.

    I have only worked with CRM 3.0/4.0 but I have worked some with other WDP applications.
    So you want to access some data in a table in the CRM backend (R/3)?
    To do that from Java you need to call a BAPI in the CRM system. The BAPI does the acctuall lookup in the table and returns the value to the Java side. To do that in a WDP environment you need to set up Java Connectors (jCo) in your Java server. In some cases you can use a "normal" BAPI call, that is the way CRM ISA 3.0 and 4.0 works. See: http://help.sap.com/saphelp_crm30/helpdata/en/b6/97f8378f975450e10000009b38f8cf/frameset.htm
    and here:
    https://websmp108.sap-ag.de/~form/sapnet?_FRAME=CONTAINER&_OBJECT=011000358700000633682005E
    Here is how to access ABAP functions from WDP: http://help.sap.com/saphelp_webas630/helpdata/en/c3/76b45d9688e04abe1a1070410ddc1e/frameset.htm

  • Problems with running quote server from Java Tutorial

    Hello
    The problem is this: I try to run QuoteServer from java tutorial (Trail: Deployment
    Lesson: Applets, A Simple Network Client Applet) and server compiles but when I try to run it following message shows up:
    QuoteServer listening on port: 32769
    Exception in thread "QuoteServer" java.lang.NullPointerException
    at java.net.DatagramPacket.setData(DatagramPacket.java:244)
    at java.net.DatagramPacket.<init>(DatagramPacket.java:62)
    at java.net.DatagramPacket.<init>(DatagramPacket.java:78)
    at QuoteServerThread.run(QuoteServerThread.java:38)
    And then server stops. What's going on?.
    Cheers

    Line 38 of QuoteServer.java is: packet = new DatagramPacket(buf, 256);
    And that's where the problem is because in line 31 is written byte[] buf = null;
    And what I get when I run QuoteServer.java with gcj version of java (gives more clues) is:
    java QuoteServer
    QuoteServer listening on port: 32785
    Exception in thread "QuoteServer" java.lang.NullPointerException: Null buffer
    at java.net.DatagramPacket.setData(byte[], int, int) (/usr/lib/libgcj.so.6.0.0)
    at java.net.DatagramPacket.DatagramPacket(byte[], int, int) (/usr/lib/libgcj.so.6.0.0)
    at java.net.DatagramPacket.DatagramPacket(byte[], int) (/usr/lib/libgcj.so.6.0.0)
    at QuoteServerThread.run() (Unknown Source)
    at .GC_start_routine (/usr/lib/libgcj.so.6.0.0)
    at .__clone (/lib/libc-2.3.5.so)
    So the problem is with this null buffer. What enter in line 31 instead of null?.
    What values can byte[] reach except null?. I tried to find byte[] in java API but there is only Byte variable. I get the same output with java 5.0 compiler (but less clues).
    Message was edited by:
    macmacmac

  • Need to access/connect Remote Unix server from Java

    Please any one give me a direct solution for connecting a remote Unix server through telnet connection from java application. Thanks in advance..

    If I run the below program codes, in the console it is asking to enter username and password in manual but I need to give it automatically.
    The highlighted "root" is entered by the user manually using keyboard.
    Expected:
    I mean the username, password and some action is set to be automatic, so that it should not ask the user to enter the input from keyboard.
    import java.awt.Robot;
    import java.awt.event.KeyEvent;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import org.apache.commons.net.telnet.TelnetClient;
    import org.apache.commons.net.telnet.TelnetNotificationHandler;
    import org.apache.commons.net.telnet.SimpleOptionHandler;
    import org.apache.commons.net.telnet.EchoOptionHandler;
    import org.apache.commons.net.telnet.TerminalTypeOptionHandler;
    import org.apache.commons.net.telnet.SuppressGAOptionHandler;
    import org.apache.commons.net.telnet.InvalidTelnetOptionException;
    import java.util.StringTokenizer;
    * This is a simple example of use of TelnetClient.
    * An external option handler (SimpleTelnetOptionHandler) is used.
    * Initial configuration requested by TelnetClient will be:
    * WILL ECHO, WILL SUPPR
    * ESS-GA, DO SUPPRESS-GA.
    * VT100 terminal type will be subnegotiated.
    * <p>
    * Also, use of the sendAYT(), getLocalOptionState(), getRemoteOptionState()
    * is demonstrated.
    * When connected, type AYT to send an AYT command to the server and see
    * the result.
    * Type OPT to see a report of the state of the first 25 options.
    * <p>
    * @author Bruno D'Avanzo
    public class UnixConnect implements Runnable, TelnetNotificationHandler
        static TelnetClient tc = null;
         * Main for the TelnetClientExample.
        public static void main(String[] args) throws IOException
            FileOutputStream fout = null;
            /*if(args.length < 1)
                System.err.println("Usage: TelnetClientExample1 <remote-ip> [<remote-port>]");
                System.exit(1);
            String remoteip = "192.168.20.11";
            int remoteport;
            if (args.length > 1)
                remoteport = (new Integer(args[1])).intValue();
            else
                remoteport = 23;
            try
                fout = new FileOutputStream ("spy.log", true);
            catch (Exception e)
                System.err.println(
                    "Exception while opening the spy file: "
                    + e.getMessage());
            tc = new TelnetClient();
            TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler("VT200", false, false, true, false);
            EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true, false);
            SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true);
            try
                tc.addOptionHandler(ttopt);
                tc.addOptionHandler(echoopt);
                tc.addOptionHandler(gaopt);
            catch (InvalidTelnetOptionException e)
                System.err.println("Error registering option handlers: " + e.getMessage());
            while (true)
                boolean end_loop = false;
                try
                    tc.connect(remoteip, remoteport);
                    Thread reader = new Thread (new UnixConnect());
                    tc.registerNotifHandler(new UnixConnect());
                    reader.start();
                    OutputStream outstr = tc.getOutputStream();
                    byte[] buff = new byte[1024];
                    int ret_read = 0;
                    do
                        try
                            ret_read = System.in.read(buff);
                            if(ret_read > 0)
                            outstr.write(buff, 0 , ret_read);
                            outstr.flush();
                        catch (Exception e)
                            System.err.println("Exception while reading keyboard:" + e.getMessage());
                            end_loop = true;
                    while((ret_read > 0) && (end_loop == false));
                    try
                        tc.disconnect();
                    catch (Exception e)
                              System.err.println("Exception while connecting:" + e.getMessage());
                catch (Exception e)
                        System.err.println("Exception while connecting:" + e.getMessage());
                        System.exit(1);
         * Callback method called when TelnetClient receives an option
         * negotiation command.
         * <p>
         * @param negotiation_code - type of negotiation command received
         * (RECEIVED_DO, RECEIVED_DONT, RECEIVED_WILL, RECEIVED_WONT)
         * <p>
         * @param option_code - code of the option negotiated
         * <p>
        public void receivedNegotiation(int negotiation_code, int option_code)
            String command = null;
            if(negotiation_code == TelnetNotificationHandler.RECEIVED_DO)
                command = "DO";
            else if(negotiation_code == TelnetNotificationHandler.RECEIVED_DONT)
                command = "DONT";
            else if(negotiation_code == TelnetNotificationHandler.RECEIVED_WILL)
                command = "WILL";
            else if(negotiation_code == TelnetNotificationHandler.RECEIVED_WONT)
                command = "WONT";
            System.out.println("Received " + command + " for option code " + option_code);
         * Reader thread.
         * Reads lines from the TelnetClient and echoes them
         * on the screen.
        public void run()
            InputStream instr = tc.getInputStream();
            try
                byte[] buff = new byte[1024];
                int ret_read = 0;
                do
                    ret_read = instr.read(buff);
                    if(ret_read > 0)
                       System.out.print(new String(buff, 0, ret_read));
                while (ret_read >= 0);
            catch (Exception e)
                System.err.println("Exception while reading socket:" + e.getMessage());
            try
                tc.disconnect();
            catch (Exception e)
                System.err.println("Exception while closing telnet:" + e.getMessage());

  • Problems connecting to iTunes store from PC?

    After upgrading to the new iTunes version, I am having problems connecting to the iTunes store from any of my laptops.  no problem with the Macbook pro.
    I deleted the programs and re-installed them, and no change. Any suggestions?

    Close your iTunes,
    Go to command Prompt -
    (Win 7/Vista) - START>PROGRAMS>ACCESSORIES, right mouse click "Command Prompt", choose "Run as Administrator".
    (Win XP SP2 n above) - START>PROGRAMS>ACCESSORIES>Command Prompt
    In the "Command Prompt" screen, type in
    netsh winsock reset
    Hit "ENTER" key
    Restart your computer.
    If you do get a prompt after restart windows to remap LSP, just click NO.
    Now launch your iTunes and see if it is working now.
    If you are still having these type of problems after trying the winsock reset, refer to this article to identify which software in your system is inserting LSP:
    Apple software on Windows: May see performance issues and blank iTunes Store
    http://support.apple.com/kb/TS4123?viewlocale=en_US

  • Problem while running dos command from java program

    Dear friends,
    I need to terminate a running jar file from my java program which is running in the windows os.
    For that i have an dos command to find process id of java program and kill by using tskill command.
    Command to find process id is,
    wmic /output:ProcessList.txt process where "name='java.exe'" get commandline,processid
    This command gives the ProcessList.txt file and it contains the processid. I have to read this file to find the processid.
    when i execute this command in dos prompt, it gives the processid in the ProcessList.txt file. But when i execute the same command in java program it keeps running mode only.
    Code to run this command is,
    public class KillProcess {
         public static void main(String args[]) {
              KillProcess kProcess = new KillProcess();
              kProcess.getRunningProcess();
              kProcess = new KillProcess();
              kProcess.readProcessFile();
         public void getRunningProcess() {
              String cmd = "wmic /output:ProcessList.txt process where \"name='java.exe'\" get commandline,processid";
              try {
                   Runtime run = Runtime.getRuntime();
                   Process process = run.exec(cmd);
                   int i = process.waitFor();
                   String s = null;
                   if(i==0) {
                        BufferedReader stdInput = new BufferedReader(new
                               InputStreamReader(process.getInputStream()));
                        while ((s = stdInput.readLine()) != null) {
                         System.out.println("--> "+s);
                   } else {
                        BufferedReader stdError = new BufferedReader(new
                               InputStreamReader(process.getErrorStream()));
                        while ((s = stdError.readLine()) != null) {
                         System.out.println("====> "+ s);
                   System.out.println("Running process End....");
              } catch(Exception e) {
                   e.printStackTrace();
         public String readProcessFile() {
              System.out.println("Read Process File...");
              File file = null;
              FileInputStream fis = null;
              BufferedReader br = null;
              String pixieLoc = "";
              try {
                   file = new File("ProcessList.txt");
                   if (file.exists() && file.length() > 0) {
                        fis = new FileInputStream(file);
                        br = new BufferedReader(new InputStreamReader(fis, "UTF-16"));
                        String line;
                        while((line = br.readLine()) != null)  {
                             System.out.println(line);
                   } else {
                        System.out.println("No such file");
              } catch (Exception e) {
                   e.printStackTrace();
              return pixieLoc;
    }     when i remove the process.waitFor(), then while reading the ProcessList.txt file, it says "No such file".
    if i give process.waitFor(), then it's in running mode and program is not completed.
    Colud anyone please tell me how to handle this situation?
    or Is there anyother way to kill the one running process in windows from java program?
    Thanks in advance,
    Sathish

    Hi masijade,
    The modified code is,
    class StreamGobbler extends Thread
        InputStream is;
        String type;
        StreamGobbler(InputStream is, String type)
            this.is = is;
            this.type = type;
        public void run()
            try
                InputStreamReader isr = new InputStreamReader(is, "UTF-16");
                BufferedReader br = new BufferedReader(isr);
                String line=null;
                while ( (line = br.readLine()) != null)
                    System.out.println(type + ">" + line);
                } catch (IOException ioe)
                    ioe.printStackTrace(); 
    public class GoodWindowsExec
        public static void main(String args[])
            try
                String osName = System.getProperty("os.name" );
                String[] cmd = new String[3];
                 if( osName.equals( "Windows 95" ) )
                    cmd[0] = "command.com" ;
                    cmd[1] = "/C" ;
                    cmd[2] = "wmic process where \"name='java.exe'\" get commandline,processid";
                } else {
                    cmd[0] = "cmd.exe" ;
                    cmd[1] = "/C" ;
                    cmd[2] = "wmic process where \"name='java.exe'\" get commandline,processid";
                Runtime rt = Runtime.getRuntime();
                System.out.println("Execing " + cmd[0] + " " + cmd[1]
                                   + " " + cmd[2]);
                Process proc = rt.exec(cmd);
                System.out.println("Executing.......");
                // any error message?
                StreamGobbler errorGobbler = new
                    StreamGobbler(proc.getErrorStream(), "ERROR");           
                          // any output?
              StreamGobbler outputGobbler = new
                    StreamGobbler(proc.getInputStream(), "OUTPUT");
                          // kick them off
                errorGobbler.start();
                outputGobbler.start();
                // any error???
                int exitVal = proc.waitFor();
                System.out.println("ExitValue: " + exitVal);       
            } catch (Throwable t)
                t.printStackTrace();
    }when i execute the above code, i got output as,
    Execing cmd.exe /C wmic process where "name='java.exe'" get commandline,processid
    and keeps in running mode only.
    If i execute the same command in dos prompt,
    CommandLine
    ProcessId
    java -classpath ./../lib/StartApp.jar;./../lib; com.abc.middle.startapp.StartAPP  2468
    If i modify the command as,
    cmd.exe /C wmic process where "name='java.exe'" get commandline,processid  > 123.txt
    and keeps in running mode only.
    If i open the file when program in running mode, no contents in that file.
    If i terminte the program and if i open the file, then i find the processid in that file.
    Can you help me to solve this issue?

  • Specify a exe running from certain directory from java program

    Hi there,
    I had a java program, which will spawn some child process to run vb COM;
    what I wanted to do: have a child process start the COM from a specific diretory?
    IS there any way to do it from Java, like shell programming?
    Thanks

    I do all my portable shell stuff now in ant.. http://jakarta.apache.org/ant/
    it is an XML driven java script for doing builds.. but it can be used for shell scripting.
    They are also some java scripting languages like jPython but i am not very familiar with them.
    u can also get Cygwin and write unix shell scripts. www.cygwin.com
    hope this helps

  • Accessing ACTIVE DIRECTORY FROM JAVA CODE

    I am trying to access the Active DIrectory user through a java code.
    Kindly let me know the steps apart from creating the user in ADS to be followed so that the following java code may work.
    presently it is giving the following error.
    problem serching the directory
    //package com.axa;
    import java.util.Hashtable;
    import javax.naming.ldap.*;
    import javax.naming.directory.*;
    import javax.naming.*;
    public class AdHelper
         public static void main(String args[])
    System.out.println("1");
              Hashtable env = new Hashtable();
              String adminName = "CN=user,CN=Users,DC=BDC4AXA.CO.IN";
              String adminPassword = "user";
              String ldapURL = "ldap://10.1.242.51:636";
    System.out.println("2");
              env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
              env.put(Context.SECURITY_AUTHENTICATION,"simple");
              env.put(Context.SECURITY_PRINCIPAL,adminName);
              env.put(Context.SECURITY_CREDENTIALS,adminPassword);
              env.put(Context.PROVIDER_URL,ldapURL);
    System.out.println("3");
              try {
                   // Create the initial directory context
                   DirContext ctx = new InitialLdapContext(env,null);
    System.out.println("4");
                   SearchControls searchCtls = new SearchControls();
              System.out.println("5");
                   //Specify the attributes to return
                   String returnedAtts[]={"sn","givenName","mail"};
                   searchCtls.setReturningAttributes(returnedAtts);
                   //Specify the search scope
                   searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
                   //specify the LDAP search filter
                   String searchFilter = "(&(objectClass=user)(mail=*))";
    System.out.println("6");
                   //Specify the Base for the search
                   String searchBase = "DC=ANTIPODES,DC=COM";
    System.out.println("7");
                   //initialize counter to total the results
                   int totalResults = 0;
                   // Search for objects using the filter
                   NamingEnumeration answer = ctx.search(searchBase, searchFilter, searchCtls);
    System.out.println("8");               //Loop through the search results
                   while (answer.hasMoreElements()) {
              SearchResult sr = (SearchResult)answer.next();
                   totalResults++;
    System.out.println("9");
                   System.out.println(">>>" + sr.getName());
                   Attributes attrs = sr.getAttributes();
                        if (attrs != null) {
                             try {
                             System.out.println(" surname: " + attrs.get("sn").get());
                             System.out.println(" firstname: " + attrs.get("givenName").get());
                             System.out.println(" mail: " + attrs.get("mail").get());
                             catch (NullPointerException e)     {
                             System.out.println("Errors listing attributes: " + e);
                   System.out.println("Total results: " + totalResults);
                   ctx.close();
                   catch (NamingException e) {
                   System.err.println("Problem searching directory: " + e);
              catch(Exception e)
                   System.out.println("Unhandled Exception: " + e);
    }

    This is what I have for my LDAP connection.
    public Hashtable<String, String> env = null;
         public LdapContext ldapContext = null;
         public Control[] connCtls = null;
         Context ctx;
         DirContext dirContext;
    public LDAPAuth(String ldapurl) {
              ldapurl = "ldap://" + serverIP + ":389";
              try {
                   env = new Hashtable<String, String>();
                   env.put(Context.INITIAL_CONTEXT_FACTORY,
                             "com.sun.jndi.ldap.LdapCtxFactory");
                   env.put(Context.SECURITY_AUTHENTICATION, "simple");
                   env.put(Context.PROVIDER_URL, ldapurl);
                   env.put(Context.SECURITY_PRINCIPAL, "cn=username,cn=users" + baseName);
                   env.put(Context.SECURITY_CREDENTIALS, "password" + baseName);
                   env.put(Context.SECURITY_PROTOCOL, "ssl");
                   ctx = new InitialContext(env);
              } catch (Exception e) {
                   System.out.println(" bind error: " + e);
                   e.printStackTrace();
              try {
                   ldapContext = new InitialLdapContext(env, connCtls);
              } catch (AuthenticationException e) {
                   System.out.println("Authentication exception " + e);
              } catch (NamingException e) {
                   System.out.println("Naming exception " + e);
         public Attributes fetch(String username) throws NamingException {
              DirContext ctx = new InitialDirContext(env);
              Attributes attributes = ctx.getAttributes(username);
              try {
                   System.out.println("fetching: " + username);
                   Object obj = ctx.lookup("cn=" + username
                             + baseName);
                   System.out.println("cn=" + username + baseName + "is bound to: " + obj);
                   //attributes = obj.getAttributes("");
                   for (NamingEnumeration<?> ae = attributes.getAll(); ae
                             .hasMoreElements();) {
                        Attribute attr = (Attribute) ae.next();
                        String attrId = attr.getID();
                        for (NamingEnumeration<?> vals = attr.getAll(); vals.hasMore();) {
                             String value = vals.next().toString();
                             System.out.println(attrId + ": " + value);
              } catch (NamingException e) {
                   System.out.println(" Problem looking up " + username + baseName + ". " + e);
              return attributes;
    Now, I'm sure it has something to do with how I'm passing in the username and the groups. But I want to have ANY user log in, not just this test. I may be a little confused on how this works, but if anyone could explain to me why what I am trying to do doesn't work, I would greatly appreciate it.
    Thanks in advance,
    Tetsuya.
    Edited by: tetsuyamasamune on Sep 8, 2008 3:55 PM

  • Problem connecting to SQL Server from JDeveloper 10g using jdbc third party

    I am using Oracle 10g Jdeveloper and I tried to setup a database
    connection to SQL Server using various Drivers for JDBC as Merlin, jtds, inet.tds, etc.
    (I had no problem to set up a connection to an Oracle Database using the
    Oracle JDBC driver).
    When I am testing the connection throughout the wizard, I do receive
    this error message: "Unable to find driver:
    com.microsoft.jdbc.sqlserver.SQLServerDriver".
    I m not understanding from last 3 days where to place the corresponding JAR files so thaI may not get the Error.
    When I hit n trialed at various directories of the JDeveloper as </rootDir/jdbc/lib>
    </rootDir/lib>
    </root/jdev/my Work/Application1/Project1/public_html>
    </root/jdev/my Work/Application1/Project1/public_html/web-inf/>
    when I tested the connection I do received:
    "Unable to find driver:
    xxx.xxx.xxx.xxxxxxx Unable to find driver:
    Obviously it can't locate the Micrososft JDBC driver but I can't
    figure out why.
    I tried all kind of things without any success. Is somebody can help
    me and took me beyond this.
    I m trying to build DataSource connection from JavaBeans.
    Please make me out of this cave. I m not finding any of the way to do this.
    The last code I tried is
    try {
    Class.forName("com.inet.pool.PoolDriver");
    com.inet.tds.TdsDataSource tds = new com.inet.tds.TdsDataSource();
    tds.setServerName( "local" );
    tds.setDatabaseName( "bluff" );
    tds.setUser( dbUserName );
    tds.setPassword( dbPassword );
    DataSource ds = tds;
    Connection con = ds.getConnection(dbUserName,dbPassword);
    Statement stmt;
    ResultSet rs = null;
    Thanks,

    you are confusing me at least as your error is discussing the microsoft driver yet you are configuring the inet datasource.
    I do not use JDeveloper, but you need to make sure that whatever is servicing your web app/JavaBean has access to the driver. Not sure why you are not doing a JNDI look up of the resoure, but because you are not you can stick the driver jar in the lib directory within the WAR bundle. I would suggest that you add the driver to the lib/ext or the lib directory which is loaded at boot time for your web container and then use JNDI to look up your DataSource to reduce your coding maintenance headaches.

Maybe you are looking for