We have been using middlegen to generate EJB for last 3 years for JBoss3.2.1
successfully and it has worked very well for us. Now we are trying to upgrade
to JBoss4.0.4 and we are getting this error in the middlegen generated file
when deployed,
java.lang.ClassCastException
at
com.acs.erx.payload.interfaces.PayloadSessionBeanUtil.getLocalHome(PayloadSessionBeanUtil.java:145)
at
com.acs.erx.payload.batch.PostCashieringTask.run(PostCashieringTask.java:59)
at java.util.TimerThread.mainLoop(Timer.java:432)
at java.util.TimerThread.run(Timer.java:382)
Please advice what we need to change to get it working. I have attached the
generated file. It does work in JBoss 4.0.1sp1 but not in 4.0.4 We are using
middlegen 2.1
Thanks!
The generated code is this,
/*
* Generated file - Do not edit!
*/
/**
* Utility class for PayloadSessionBean.
*/
public class PayloadSessionBeanUtil
{
// Home interface lookup methods
/**
* Obtain remote home interface from default initial context
* @return Home interface for PayloadSessionBean. Lookup using JNDI_NAME
*/
public static com.acs.erx.payload.interfaces.PayloadSessionBeanHome
getHome() throws NamingException
{
// Obtain initial context
InitialContext initialContext = new InitialContext();
try {
java.lang.Object objRef =
initialContext.lookup(com.acs.erx.payload.interfaces.PayloadSessionBeanHome.JNDI_NAME);
return (com.acs.erx.payload.interfaces.PayloadSessionBeanHome)
PortableRemoteObject.narrow(objRef,
com.acs.erx.payload.interfaces.PayloadSessionBeanHome.class);
} finally {
initialContext.close();
}
}
/**
* Obtain remote home interface from parameterised initial context
* @param environment Parameters to use for creating initial context
* @return Home interface for PayloadSessionBean. Lookup using JNDI_NAME
*/
public static com.acs.erx.payload.interfaces.PayloadSessionBeanHome getHome(
Hashtable environment ) throws NamingException
{
// Obtain initial context
InitialContext initialContext = new InitialContext(environment);
try {
java.lang.Object objRef =
initialContext.lookup(com.acs.erx.payload.interfaces.PayloadSessionBeanHome.JNDI_NAME);
return (com.acs.erx.payload.interfaces.PayloadSessionBeanHome)
PortableRemoteObject.narrow(objRef,
com.acs.erx.payload.interfaces.PayloadSessionBeanHome.class);
} finally {
initialContext.close();
}
}
/**
* Obtain local home interface from default initial context
* @return Local home interface for PayloadSessionBean. Lookup using
JNDI_NAME
*/
public static com.acs.erx.payload.interfaces.PayloadSessionBeanLocalHome
getLocalHome() throws NamingException
{
// Local homes shouldn't be narrowed, as there is no RMI involved.
// Obtain initial context
InitialContext initialContext = new InitialContext();
try {
return (com.acs.erx.payload.interfaces.PayloadSessionBeanLocalHome)
initialContext.lookup(com.acs.erx.payload.interfaces.PayloadSessionBeanLocalHome.JNDI_NAME);
} finally {
initialContext.close();
}
}
/** Cached per JVM server IP. */
private static String hexServerIP = null;
// initialise the secure random instance
private static final SecureRandom seeder = new SecureRandom();
/**
* A 32 byte GUID generator (Globally Unique ID). These artificial keys
SHOULD NOT 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) {
InetAddress localInetAddress = null;
try {
// get the inet address
localInetAddress = InetAddress.getLocalHost();
}
catch (java.net.UnknownHostException uhe) {
System.err.println("PayloadSessionBeanUtil: 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();
}
}
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3925164#3925164
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3925164
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user