[jboss-user] [Beginners Corner] - Re: java.lang.ClassCastException: org.jnp.interfaces.NamingC
tamscot
do-not-reply at jboss.com
Tue Nov 27 04:02:38 EST 2007
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
More information about the jboss-user
mailing list