2
votes

This code fails when used by a local java client to lookup a JMS ConnectionFactory from a Glassfish server running on localhost.

Can anyone tell me why? I'm so desperate even useful insults are welcome. I put the Console output below (as formatted by my program).

 InitialContext ctx = null;
 ConnectionFactory factory = null;

 // properties - set One
 Hashtable<String,String> env = new Hashtable<String,String> ();
 envTwo.put(Context.INITIAL_CONTEXT_FACTORY,
   "com.sun.enterprise.naming.impl.SerialInitContextFactory");

 env.put(Context.URL_PKG_PREFIXES, 
   "com.sun.enterprise.naming");

 env.put("org.omg.CORBA.ORBInitialPort",
   "3700");

 env.put("org.omg.CORBA.ORBInitialHost",
   "localHost");

 ctx = new InitialContext(env);
 factory = (ConnectionFactory) ctx.lookup("jms/goConnectionFactory");

Console Output

Properties:
    key: org.omg.CORBA.ORBInitialPort   
    value: 3700
    key: java.naming.factory.initial    
    value: com.sun.enterprise.naming.impl.SerialInitContextFactory
    key: org.omg.CORBA.ORBInitialHost   
    value: localHost
    key: java.naming.factory.url.pkgs   
    value: com.sun.enterprise.naming

InitialContext returned: javax.naming.InitialContext@59494225

 calling ctx.lookup()

The following was written to the .err stream.  All else to .out stream by my program)
-------------------------------------------------------------
java.lang.NullPointerException
    at com.sun.enterprise.naming.impl.SerialContext.getORB(SerialContext.java:347)
    at com.sun.enterprise.naming.impl.SerialContext.getProviderCacheKey(SerialContext.java:354)
    at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:384)
    at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:329)
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:477)
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438)
    at javax.naming.InitialContext.lookup(Unknown Source)
    at org.america3.testclasses.OracleForumTestClass.main(OracleForumTestClass.java:59)
-------------------------------------------------------------
  CAUGHT EXCEPTION: javax.naming.NamingException
  MESSAGE       : Lookup failed for 'jms/goConnectionFactory' in SerialContext[myEnv={org.omg.CORBA.ORBInitial
Port=3700, java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, org.omg.CORBA.
ORBInitialHost=localHost, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImp
l, java.naming.factory.url.pkgs=com.sun.enterprise.naming}

  CAUSE         : javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext[myEn
v={org.omg.CORBA.ORBInitialPort=3700, java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitCon
textFactory, org.omg.CORBA.ORBInitialHost=localHost, java.naming.factory.state=com.sun.corba.ee.impl.presentat
ion.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is java.
lang.NullPointerException]

  STACK TRACE   : 
com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:491)
com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:438)
javax.naming.InitialContext.lookup(Unknown Source)
org.america3.testclasses.OracleForumTestClass.main(OracleForumTestClass.java:59)
1

1 Answers

1
votes

I came to know that glassfish 4.1 is having this bug where local client cant connect to the MDB deployed on server. I tried the same with two ejb projects and it is working just fine.