Reputation: 22956
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
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