Gibbs
Gibbs

Reputation: 22956

Experiencing Classpath Error

 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import java.io.*;
 import java.util.Hashtable;

 public class QueueSend
 {
   public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";

public static void main(String[] args) throws Exception {

if (args.length != 1) {

System.out.println("Usage: java examples.jms.queue.QueueSend WebLogicURL");

return;

}

  InitialContext ic = getInitialContext(args[0]);
}

 private static InitialContext getInitialContext(String url) throws NamingException
  {
    System.out.println("url is "+url);      
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    env.put(Context.PROVIDER_URL, url);
    return new InitialContext(env);
  } 
}


 javac -cp wlthint3Client.jar QueueSend.java

Creates QueueSend.class

 java -cp wlthint3Client.jar QueueSend t3://localhost:7001

Says

 Exception in thread "main" javax.naming.NoInitialContextException: Cannot 
 instantiate class: weblogic.jndi.WLInitialContextFactory [Root exc
 tion is 
 java.lang.ClassNotFoundException:weblogic.jndi.WLInitialContextFactory]

Then i checked the jar file

 javap -cp wlthint3client.jar weblogic.jndi.WLInitialContextFactory

It shows

 Compiled from "WLInitialContextFactory.java"
 public class weblogic.jndi.WLInitialContextFactory implements    
  javax.naming.spi.InitialContextFactory {
   public weblogic.jndi.WLInitialContextFactory();
   public final javax.naming.Context   
   getInitialContext(java.util.Hashtable)     throws 
   javax.naming.NamingException;
 }

How do i solve this error?

Upvotes: 2

Views: 689

Answers (1)

Reimeus
Reimeus

Reputation: 159754

Add the current directory to the runtime classpath

java -cp wlthint3Client.jar;. QueueSend t3://localhost:7001

java doesn't include the current path when the -cp flag is used so this needs to be added explicitly

Upvotes: 1

Related Questions