The type of cachedConnectionFactory is... | /** Cached connection factory. Uses lazy loading to obtain its value. */ | private static javax.jms.QueueConnectionFactory cachedConnectionFactory = null; | declared at the top of the class
Declaration of CONNECTION_FACTORY_JNDI_NAME... | private static final java.lang.String CONNECTION_FACTORY_JNDI_NAME=""; | The full code for the xdoclet produced class... | /* | * Generated file - Do not edit! | */ | package com.jujitsu.ejb; | | /** | * Utility class for AsyncJujitsuFacade. | * @generated | * @wtp generated | */ | public class AsyncJujitsuFacadeUtil | { | | /** Cached queue (javax.jms.Queue). Uses lazy loading to obtain its value (loaded by getQueue() methods). */ | private static javax.jms.Queue cachedQueue = null; | /** Cached connection factory. Uses lazy loading to obtain its value. */ | private static javax.jms.QueueConnectionFactory cachedConnectionFactory = null; | | private static final java.lang.String DESTINATION_JNDI_NAME="queue/AsyncJujitsuFacade"; | private static final java.lang.String CONNECTION_FACTORY_JNDI_NAME=""; | | /** | * Obtain destination queue from default initial context | * @return Destination JMS Queue for AsyncJujitsuFacade. Lookup using JNDI_NAME | */ | public static javax.jms.Queue getQueue() throws javax.naming.NamingException | { | if (cachedQueue == null) { | // Obtain initial context | javax.naming.InitialContext initialContext = new javax.naming.InitialContext(); | try { | java.lang.Object objRef = initialContext.lookup(DESTINATION_JNDI_NAME); | cachedQueue = (javax.jms.Queue) objRef; | } finally { | initialContext.close(); | } | } | return cachedQueue; | } | | /** | * Obtain destination queue from parameterised initial context | * @param environment Parameters to use for creating initial context | * @return Destination JMS Queue for AsyncJujitsuFacade. Lookup using JNDI_NAME | */ | public static javax.jms.Queue getQueue( java.util.Hashtable environment ) throws javax.naming.NamingException | { | // Obtain initial context | javax.naming.InitialContext initialContext = new javax.naming.InitialContext(environment); | try { | java.lang.Object objRef = initialContext.lookup(DESTINATION_JNDI_NAME); | return (javax.jms.Queue) objRef; | } finally { | initialContext.close(); | } | } | | /** | * Obtain destination queue from default initial context | * @return Destination JMS Connection Factory for AsyncJujitsuFacade. Lookup using JNDI_NAME | */ | public static javax.jms.QueueConnection getQueueConnection() throws javax.naming.NamingException, javax.jms.JMSException | { | if (cachedConnectionFactory == null) { | // Obtain initial context | javax.naming.InitialContext initialContext = new javax.naming.InitialContext(); | try { | java.lang.Object objRef = initialContext.lookup(CONNECTION_FACTORY_JNDI_NAME); | cachedConnectionFactory = (javax.jms.QueueConnectionFactory) objRef; | } finally { | initialContext.close(); | } | } | return cachedConnectionFactory.createQueueConnection(); | } | | /** | * Obtain destination queue from parameterised initial context | * @param environment Parameters to use for creating initial context | * @return Destination JMS Connection Factory for AsyncJujitsuFacade. Lookup using JNDI_NAME | */ | public static javax.jms.QueueConnection getQueueConnection( java.util.Hashtable environment ) throws javax.naming.NamingException, javax.jms.JMSException | { | // Obtain initial context | javax.naming.InitialContext initialContext = new javax.naming.InitialContext(environment); | try { | java.lang.Object objRef = initialContext.lookup(CONNECTION_FACTORY_JNDI_NAME); | return ((javax.jms.QueueConnectionFactory) objRef).createQueueConnection(); | } finally { | initialContext.close(); | } | } | | /** Cached per JVM server IP. */ | private static String hexServerIP = null; | | // initialise the secure random instance | private static final java.security.SecureRandom seeder = new java.security.SecureRandom(); | | /** | * A 32 byte GUID generator (Globally Unique ID). These artificial keys SHOULD <strong>NOT </strong> be seen by the user, | * not even touched by the DBA but with very rare exceptions, just manipulated by the database and the programs. | * | * Usage: Add an id field (type java.lang.String) to your EJB, and add setId(XXXUtil.generateGUID(this)); to the ejbCreate method. | */ | public static final String generateGUID(Object o) { | StringBuffer tmpBuffer = new StringBuffer(16); | if (hexServerIP == null) { | java.net.InetAddress localInetAddress = null; | try { | // get the inet address | | localInetAddress = java.net.InetAddress.getLocalHost(); | } | catch (java.net.UnknownHostException uhe) { | System.err.println("AsyncJujitsuFacadeUtil: Could not get the local IP address using InetAddress.getLocalHost()!"); | // todo: find better way to get around this... | uhe.printStackTrace(); | return null; | } | byte serverIP[] = localInetAddress.getAddress(); | hexServerIP = hexFormat(getInt(serverIP), 8); | } | | String hashcode = hexFormat(System.identityHashCode(o), 8); | tmpBuffer.append(hexServerIP); | tmpBuffer.append(hashcode); | | long timeNow = System.currentTimeMillis(); | int timeLow = (int)timeNow & 0xFFFFFFFF; | int node = seeder.nextInt(); | | StringBuffer guid = new StringBuffer(32); | guid.append(hexFormat(timeLow, 8)); | guid.append(tmpBuffer.toString()); | guid.append(hexFormat(node, 8)); | return guid.toString(); | } | | private static int getInt(byte bytes[]) { | int i = 0; | int j = 24; | for (int k = 0; j >= 0; k++) { | int l = bytes[k] & 0xff; | i += l << j; | j -= 8; | } | return i; | } | | private static String hexFormat(int i, int j) { | String s = Integer.toHexString(i); | return padHex(s, j) + s; | } | | private static String padHex(String s, int i) { | StringBuffer tmpBuffer = new StringBuffer(); | if (s.length() < i) { | for (int j = 0; j < i - s.length(); j++) { | tmpBuffer.append('0'); | } | } | return tmpBuffer.toString(); | } | | } | This is code which is generated when the ejb is created... it seems as though the value of CONNECTION_FACTORY_JNDI_NAME maybe an empty string when called in the getQueueConnection() method (no params) above. I have no control over this code or it's parameters? The value of objRef when the last method is called, the method in which the exception occurs. | objRef NamingContext (id=263) | env Hashtable<K,V> (id=265) | naming NamingServer (id=270) | parser NamingParser (id=274) | prefix CompoundName (id=277) | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4107957#4107957 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4107957 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user