DataSource - No object bound...
tnist Aug 29, 2002 5:15 PMI have a basic client program which is trying to gain access to the data source for testing. When the below program attempts to access the DefaultDS, the following exception is thrown:
javax.naming.NameNotFoundException: No object bound for java:/DefaultDS
at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:116)
at javax.naming.InitialContext.lookup(InitialContext.java:345)
at examples.ClientTest.main(ClientTest.java:30)
The basic program is as follows, do I need to do something special for the JNDI properties to allow it to access the data found in the "java" name space:
package examples;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.sql.DataSource;
public class ClientTest {
public static void main(String[] args) {
try {
Hashtable props = new Hashtable();
// set up JBoss JNDI properties
props.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.put(Context.PROVIDER_URL, "localhost:1099");
props.put("java.naming.rmi.secruity.manager", "yes");
props.put(Context.URL_PKG_PREFIXES, "org.jboss.naming");
Context ctx = new InitialContext(props);
for (Enumeration e = ctx.list(ctx.getNameInNamespace()); e.hasMoreElements();) {
System.out.println(e.nextElement().toString());
}
DataSource ds = null;
ds = (javax.sql.DataSource)ctx.lookup("java:/DefaultDS");
//Object objref = ctx.lookup("ejb/examples/MyTestSessionBean");
System.out.println("The DataSource is: " + ds);
} catch(javax.naming.NamingException ne) {
System.out.println(ne.getMessage());
ne.printStackTrace();
} catch( Exception e) {
System.out.println(e.getMessage());
}
} // ---- main ----
} // ---- ClientTest ----
The program generates the following output:
XAConnectionFactory: org.jboss.mq.SpyXAConnectionFactory
jmx:Apollo:rmi: org.jboss.jmx.adaptor.rmi.RMIAdaptorImpl
UserTransactionSessionFactory: org.jboss.tm.usertx.server.UserTransactionSessionFactoryImpl
RMIXAConnectionFactory: org.jboss.mq.SpyXAConnectionFactory
topic: org.jnp.interfaces.NamingContext
queue: org.jnp.interfaces.NamingContext
ConnectionFactory: org.jboss.mq.SpyConnectionFactory
RMIConnectionFactory: org.jboss.mq.SpyConnectionFactory
UserTransaction: org.jboss.tm.usertx.client.ClientUserTransaction
ejb: org.jnp.interfaces.NamingContext
invokers: org.jnp.interfaces.NamingContext
UILXAConnectionFactory: org.jboss.mq.SpyXAConnectionFactory
UILConnectionFactory: org.jboss.mq.SpyConnectionFactory
No object bound for java:/DefaultDS
javax.naming.NameNotFoundException: No object bound for java:/DefaultDS
at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:116)
at javax.naming.InitialContext.lookup(InitialContext.java:345)
at examples.ClientTest.main(ClientTest.java:30)
I have looked at the JNDIView to ensure that the data source is bound in it is:
java: Namespace
+- DefaultDS (class: org.jboss.resource.adapter.jdbc.local.LocalDataSource)
+- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
+- SecurityProxyFactory (class: org.jboss.security.SubjectSecurityProxyFactory)
+- DefaultJMSProvider (class: org.jboss.jms.jndi.JBossMQProvider)
+- CounterService (class: org.jboss.varia.counter.CounterService)
+- comp (class: javax.naming.Context)
+- JmsXA (class: org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl)
+- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
+- jaas (class: javax.naming.Context)
| +- JmsXARealm (class: org.jboss.security.plugins.SecurityDomainContext)
| +- jbossmq (class: org.jboss.security.plugins.SecurityDomainContext)
+- timedCacheFactory (class: javax.naming.Context)
Failed to lookup: timedCacheFactory, errmsg=org.jboss.util.TimedCachePolicy
+- TransactionPropagationContextExporter (class: org.jboss.tm.TransactionPropagationContextFactory)
+- Mail (class: javax.mail.Session)
+- StdJMSPool (class: org.jboss.jms.asf.StdServerSessionPoolFactory)
+- TransactionPropagationContextImporter (class: org.jboss.tm.TransactionPropagationContextImporter)
+- ProgressDS (class: org.jboss.resource.adapter.jdbc.local.LocalDataSource)
+- TransactionManager (class: org.jboss.tm.TxManager)
I am sure I am missing something obvious, but I don't see it. Any help is appreciated.
Regards,
Todd