JBoss JNDI. What is happening?... DefaultDS?

Discussion in 'Java' started by rwfields@yahoo.com, Jan 19, 2007.

  1. Guest

    Greetings Gurus!

    I am having difficulty referencing the DefaultDS from a
    client running outside the JBoss JVM. Any advice or examples would be
    greatly
    appreciated. I am running JBoss version 4.0.5GA. I eventually want to
    load
    and use the datasource in the client application. For simplicity of
    example,
    I set up a default JBoss install. It seems that I do not have access
    to anything in the java: context from outside the JBoss JVM. Are there
    security constraints that need to be modified?

    Here is my source code:

    ---

    import java.util.*;
    import javax.naming.*;

    public class JNDI {

    public static void main(String[] args) {
    try {
    Context ic = new InitialContext();

    // Print the environment settings
    System.out.println("Printing environment keys:");
    Hashtable hash = ic.getEnvironment();
    Enumeration keys = hash.keys();
    while (keys.hasMoreElements()) {
    Object key = keys.nextElement();
    Object value = hash.get(key);
    System.out.println(key + "=" + value);
    }

    // We can see several bindings, just not the ones we need
    System.out.println();
    System.out.println("Printing bindings in jmx:");
    NamingEnumeration<Binding> b = ic.listBindings("jmx");
    while ( b.hasMoreElements() ) {
    Object key = b.nextElement();
    System.out.println(key);
    }

    System.out.println();
    System.out.println("Get the default datasource:");

    // Both of the following lines choke:
    // b = ic.listBindings("");
    // Context compEnv = (Context) ic.lookup("java:/DefaultDS");
    }
    catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

    ---

    The first few lines of output look like:

    Printing environment keys:
    jnp.parsedName=
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url=localhost:1099
    java.naming.factory.url.pkgs=org.jboss.naming:eek:rg.jnp.interfaces

    Printing bindings in jmx:
    invoker:
    org.jnp.interfaces.NamingContext:eek:rg.jnp.interfaces.NamingContext@a4e743
    rmi:
    org.jnp.interfaces.NamingContext:eek:rg.jnp.interfaces.NamingContext@4aeb52

    ---

    The "listBindings" call throws the following stack dump:

    Get the default datasource:
    javax.naming.CommunicationException [Root exception is
    java.lang.ClassNotFoundException:
    org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory (no
    security
    manager: RMI class loader disabled)]
    at
    org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:853)
    at
    org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:821)
    at
    javax.naming.InitialContext.listBindings(InitialContext.java:406)
    at JNDI.main(JNDI.java:42)
    Caused by: java.lang.ClassNotFoundException:
    org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory (no
    security
    manager: RMI class loader disabled)
    at
    sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:371)
    at
    sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
    at
    java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
    at
    java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
    at
    sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
    at
    java.io_ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
    at
    java.io_ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
    at
    java.io_ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
    at
    java.io_ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at
    java.io_ObjectInputStream.readObject(ObjectInputStream.java:348)
    at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
    at
    org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
    at
    org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:849)
    ... 3 more

    ---

    The "ic.lookup("java:/DefaultDS")" throws the following stack trace:

    javax.naming.NameNotFoundException: DefaultDS not bound
    at
    org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
    at
    org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
    at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
    at org.jnp.server.NamingServer.lookup(NamingServer.java:296)
    at sun.reflect.GeneratedMethodAccessor105.invoke(Unknown
    Source)
    at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at
    sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
    at sun.rmi.transport.Transport$1.run(Transport.java:153)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
    at
    sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
    at
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    at java.lang.Thread.run(Thread.java:595)
    at
    sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
    at
    sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
    at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
    at
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
    at
    org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
    at JNDI.main(JNDI.java:43)

    ---

    I am certain that the DefaultDS is up and running since the out of the
    box
    examples work, however they are all running inside JBoss. I have tried
    many
    many things to no avail.

    ---

    The XML view from the jboss4guide prints the following
    > ant -Dchap=chap2 -Dex=4 run-example


    JNDIView Class: org.jboss.mx.modelmbean.XMBean
    JNDIView Operations:
    + java.lang.String list(boolean jboss:service=JNDIView)
    + java.lang.String listXML()
    + void create()
    + void start()
    + void stop()
    + void destroy()
    + void jbossInternalLifecycle(java.lang.String jboss:service=JNDIView)
    JNDIView.list(true) output:
    <h1>Web Applications</h1>
    <h2>java:comp namespace of the console-mgr.sar/web-console.war
    application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    </pre>
    <h2>java:comp namespace of the jbossws14.sar/jbossws-context.war
    application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    </pre>
    <h2>java:comp namespace of the jmx-console.war application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/jmx-console] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/jmx-console/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/jmx-console] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/jmx-console] (class:
    javax.naming.LinkRef)
    </pre>
    <h2>java:comp namespace of the http-invoker.sar/invoker.war
    application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    </pre>
    <h2>java:comp namespace of the jbossweb-tomcat55.sar/ROOT.war
    application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/other/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/other] (class:
    javax.naming.LinkRef)
    </pre>
    <h2>java:comp namespace of the jbossmq-httpil.sar/jbossmq-httpil.war
    application:</h2>
    <pre>
    +- UserTransaction[link -> UserTransaction] (class:
    javax.naming.LinkRef)
    +- ORB (class: org.jacorb.orb.ORB)
    +- env (class: org.jnp.interfaces.NamingContext)
    | +- security (class: org.jnp.interfaces.NamingContext)
    | | +- realmMapping[link -> java:/jaas/jbossmq] (class:
    javax.naming.LinkRef)
    | | +- subject[link -> java:/jaas/jbossmq/subject] (class:
    javax.naming.LinkRef)
    | | +- securityMgr[link -> java:/jaas/jbossmq] (class:
    javax.naming.LinkRef)
    | | +- security-domain[link -> java:/jaas/jbossmq] (class:
    javax.naming.LinkRef)
    </pre>
    <h1>java: Namespace</h1>
    <pre>
    +- jaas (class: javax.naming.Context)
    | +- HsqlDbRealm (class:
    org.jboss.security.plugins.SecurityDomainContext)
    | +- jmx-console (class:
    org.jboss.security.plugins.SecurityDomainContext)
    | +- jbossmq (class:
    org.jboss.security.plugins.SecurityDomainContext)
    | +- JmsXARealm (class:
    org.jboss.security.plugins.SecurityDomainContext)
    +- TransactionPropagationContextImporter (class:
    org.jboss.tm.TransactionPropagationContextImporter)
    +- JmsXA (class:
    org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl)
    +- JBossCorbaNaming (class: org.omg.CosNaming.NamingContextExt)
    +- DefaultDS (class: javax.sql.DataSource)
    +- StdJMSPool (class: org.jboss.jms.asf.StdServerSessionPoolFactory)
    +- TransactionManager (class: org.jboss.tm.TxManager)
    +- JBossCorbaPOA (class: org.omg.PortableServer.POA)
    +- TransactionPropagationContextExporter (class:
    org.jboss.tm.TransactionPropagationContextFactory)
    +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- DefaultJMSProvider (class: org.jboss.jms.jndi.JNDIProviderAdapter)
    +- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
    +- JBossCorbaInterfaceRepositoryPOA (class:
    org.omg.PortableServer.POA)
    +- Mail (class: javax.mail.Session)
    +- JBossCorbaORB (class: org.omg.CORBA.ORB)
    +- timedCacheFactory (class: javax.naming.Context)
    Failed to lookup: timedCacheFactory,
    errmsg=org.jboss.util.TimedCachePolicy
    +- SecurityProxyFactory (class:
    org.jboss.security.SubjectSecurityProxyFactory)
    +- comp (class: javax.naming.Context)
    </pre>
    <h1>Global JNDI Namespace</h1>
    <pre>
    +- HASessionState (class: org.jnp.interfaces.NamingContext)
    | +- Default (class:
    org.jboss.ha.hasessionstate.server.HASessionStateImpl)
    +- TopicConnectionFactory (class: org.jboss.naming.LinkRefPair)
    +- jmx (class: org.jnp.interfaces.NamingContext)
    | +- invoker (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor (proxy: $Proxy49 implements interface
    org.jboss.jmx.adaptor.rmi.RMIAdaptor,interface
    org.jboss.jmx.adaptor.rmi.RMIAdaptorExt)
    | +- rmi (class: org.jnp.interfaces.NamingContext)
    | | +- RMIAdaptor[link -> jmx/invoker/RMIAdaptor] (class:
    javax.naming.LinkRef)
    +- HTTPXAConnectionFactory (class:
    org.jboss.mq.SpyXAConnectionFactory)
    +- ConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- UserTransactionSessionFactory (proxy: $Proxy12 implements
    interface org.jboss.tm.usertx.interfaces.UserTransactionSessionFactory)
    +- HTTPConnectionFactory (class: org.jboss.mq.SpyConnectionFactory)
    +- XAConnectionFactory (class: org.jboss.mq.SpyXAConnectionFactory)
    +- invokers (class: org.jnp.interfaces.NamingContext)
    | +- dionysus (class: org.jnp.interfaces.NamingContext)
    | | +- iiop (class: org.jboss.invocation.iiop.IIOPInvoker)
    +- UserTransaction (class:
    org.jboss.tm.usertx.client.ClientUserTransaction)
    +- UILXAConnectionFactory[link -> XAConnectionFactory] (class:
    javax.naming.LinkRef)
    +- UIL2XAConnectionFactory[link -> XAConnectionFactory] (class:
    javax.naming.LinkRef)
    +- HAPartition (class: org.jnp.interfaces.NamingContext)
    | +- DefaultPartition (class:
    org.jboss.ha.framework.server.HAPartitionImpl)
    +- queue (class: org.jnp.interfaces.NamingContext)
    | +- A (class: org.jboss.mq.SpyQueue)
    | +- testQueue (class: org.jboss.mq.SpyQueue)
    | +- ex (class: org.jboss.mq.SpyQueue)
    | +- DLQ (class: org.jboss.mq.SpyQueue)
    | +- D (class: org.jboss.mq.SpyQueue)
    | +- C (class: org.jboss.mq.SpyQueue)
    | +- B (class: org.jboss.mq.SpyQueue)
    +- topic (class: org.jnp.interfaces.NamingContext)
    | +- testDurableTopic (class: org.jboss.mq.SpyTopic)
    | +- testTopic (class: org.jboss.mq.SpyTopic)
    | +- securedTopic (class: org.jboss.mq.SpyTopic)
    +- console (class: org.jnp.interfaces.NamingContext)
    | +- PluginManager (proxy: $Proxy50 implements interface
    org.jboss.console.manager.PluginManagerMBean)
    +- UIL2ConnectionFactory[link -> ConnectionFactory] (class:
    javax.naming.LinkRef)
    +- HiLoKeyGeneratorFactory (class:
    org.jboss.ejb.plugins.keygenerator.hilo.HiLoKeyGeneratorFactory)
    +- UILConnectionFactory[link -> ConnectionFactory] (class:
    javax.naming.LinkRef)
    +- QueueConnectionFactory (class: org.jboss.naming.LinkRefPair)
    +- UUIDKeyGeneratorFactory (class:
    org.jboss.ejb.plugins.keygenerator.uuid.UUIDKeyGeneratorFactory)
    </pre>
    <h1>HA-JNDI Namespace</h1>
    <pre>
    </pre>

    ---

    I really want to use JBoss, and eventually lend my support to the
    efforts
    surrounding what appears to be an awesome project, but I am beginning
    to
    have doubts in my choice as I have been trying to get this to work for
    some time. What am I doing wrong?

    I am completely confused. Please advise.

    Your help is greatly appreciated,
    Randall
     
    , Jan 19, 2007
    #1
    1. Advertising

  2. wrote:
    > I am having difficulty referencing the DefaultDS from a
    > client running outside the JBoss JVM. Any advice or examples would be
    > greatly
    > appreciated. I am running JBoss version 4.0.5GA. I eventually want to
    > load
    > and use the datasource in the client application.


    DataSources are local within the server - you can not share them
    with client app.

    If you create an entity bean you can access it remotely
    from your client app.

    Arne
     
    =?ISO-8859-1?Q?Arne_Vajh=F8j?=, Jan 20, 2007
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ofer Belinsky
    Replies:
    0
    Views:
    797
    Ofer Belinsky
    Jul 5, 2004
  2. Mike S
    Replies:
    0
    Views:
    23,097
    Mike S
    Sep 16, 2004
  3. Mick
    Replies:
    2
    Views:
    9,663
    Marcin Grunwald
    Feb 23, 2005
  4. Tim Terry

    jboss - tomcat JNDI problem

    Tim Terry, May 3, 2005, in forum: Java
    Replies:
    0
    Views:
    2,357
    Tim Terry
    May 3, 2005
  5. davout
    Replies:
    0
    Views:
    832
    davout
    May 12, 2005
Loading...

Share This Page