• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Deploying CMP2.0 on Websphere5.0

 
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am getting a problem in deploying CMP2.0 on Websphere5.0:
1.) Below is the code of servlet used at a client side for communication with CMP Bean.
public class AccountCMPServlet extends HttpServlet
{
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException,
ServletException
{
try
{

String strId = req.getParameter("id");
double dblBalance = Double.parseDouble(req.getParameter("balance"));
String strType = req.getParameter("type");
Context ctx = new InitialContext();

Object obj = ctx.lookup("ejb/AccountHome");

System.out.println("Got the home");
vivek.AccountHome acntHome = (vivek.AccountHome)(PortableRemoteObject.narrow(obj
,vivek.AccountHome.class));
System.out.println("narrowed");
vivek.Account acnt = acntHome.create(strId, dblBalance, strType);

System.out.println(" and Remote created");
System.out.println("The balance of the account is: " + acnt.balance() );

req.getRequestDispatcher("/jsp/done.jsp").forward(req,res);
}
catch(Exception e)
{
System.out.println("The Exception in Account :" + e.toString());
}
}
}

2.) now the code for HOME REMOTE & BeaN class is
as follows:
code for home:
package vivek;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;
import javax.ejb.FinderException;
import java.rmi.RemoteException;
import java.util.Collection;
public interface AccountHome extends EJBHome {
public Account create(String accountId, double initialBalance, String type)
throws CreateException, RemoteException;
}
code for remote:
package vivek;
import java.rmi.RemoteException;
import javax.ejb.*;
public interface Account extends EJBObject {
public double deposit(double amount)
throws RemoteException;
public double withdraw(double amount)
throws ProcessingErrorException, RemoteException;
public double balance()
throws RemoteException;
public String accountType()
throws RemoteException;
}
code for bean class:
package vivek;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.Vector;
import javax.ejb.CreateException;
import javax.ejb.DuplicateKeyException;
import javax.ejb.EJBException;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.FinderException;
import javax.ejb.NoSuchEntityException;
import javax.ejb.ObjectNotFoundException;
import javax.ejb.RemoveException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class AccountBean implements EntityBean {
final static boolean VERBOSE = true;
public String accountId;
public String accountType;
public double balance;
private EntityContext ctx;
public AccountBean() {};
public void setEntityContext(EntityContext ctx) {
log("setEntityContext called (" + id() + ")");
this.ctx = ctx;
}
public void unsetEntityContext() {
log("AccountBean.unsetEntityContext (" + id() + ")");
this.ctx = null;
}
public String getAccountId()
{
return accountId;
}
public void setAccountId(String val)
{
accountId = val;
}
public double getBalance()
{
return balance;
}
public void setBalance(double val)
{
balance = val;
}
public String getAccountType()
{
return accountType;
}
public void setAccountType(String val)
{
accountType = val;
}
private String id() {
return "" + System.identityHashCode(this) + ", PK = " +
(String) ((ctx == null) ? "nullctx"
: ((ctx.getPrimaryKey() == null ?
"null" : ctx.getPrimaryKey().toString())));
}
public void ejbActivate() {
log("AccountBean.ejbActivate (" + id() + ")");
}
public void ejbPassivate() {
log("AccountBean.ejbPassivate (" + id() + ")");
}
public void ejbLoad() {
log("AccountBean.ejbLoad (" + id() + ")");
}
public void ejbStore() {
log("AccountBean.ejbStore (" + id() + ")");
}
public void ejbRemove()
throws RemoveException
{
log("AccountBean.ejbRemove (" + id() + ")");
}
public String ejbCreate(String accountId, double initialBalance, String type)
throws CreateException
{
log("AccountBean.ejbCreate( id = " + System.identityHashCode(this) +
", PK = " +
accountId + ", " + "initial balance = $ " + initialBalance + ")");
setAccountId(accountId);
setBalance(initialBalance);
setAccountType(type);
return null; }
public void ejbPostCreate(String accountId,
double initialBalance,
String type)
{
log("AccountBean.ejbPostCreate (" + id() + ")");
}
public double deposit(double amount)
{
log("AccountBean.deposit: Depositing $" +
amount +
" into '" +
getAccountId() + "'");
setBalance(getBalance() + amount);
return getBalance();
}
public double withdraw(double amount)
throws ProcessingErrorException
{
log("AccountBean.withdraw: Withdrawing $" + amount + " from '" +
getAccountId() + "'");
if (amount > getBalance()) {
throw new ProcessingErrorException(
"Request to withdraw $" + amount +
"; is more than balance $" + getBalance() +
" in account " + getAccountId());
}
setBalance(getBalance() - amount);
return getBalance();
}
public double balance() {
log("AccountBean.balance (" + id() + ")");
return getBalance();
}
public String accountType() {
log("AccountBean.accountType (" + id() + ")");
return getAccountType();
}
private void log(String s) {
if (VERBOSE) System.out.println(s);
}
}
Now after making jar ,war and ear and generating code through AAT and intalling the ear application through amin console of websphere5.0
and doing the required settings in jdbc resources
for DB2 JDBC Providers.the error message appearing on std_output log file is :

4403f62d ExceptionUtil X CNTR0019E: Non-application exception occurred while processing method create: com.ibm.ejs.container.CreateFailureException: java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource; nested exception is:
java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource
java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource
at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:266)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:146)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.lookup(ConcreteBeanClassExtensionImpl.java:474)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.getConnectionFactory(ConcreteBeanClassExtensionImpl.java:181)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getConnectionFactory(ConcreteBeanInstanceExtensionImpl.java:621)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getRecordFactory(ConcreteBeanInstanceExtensionImpl.java:855)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getInputRecord(ConcreteBeanInstanceExtensionImpl.java:756)
at vivek.ConcreteAccountBean.ejbCreate(ConcreteAccountBean.java:131)
at vivek.EJSCMPAccountHomeBean.create(EJSCMPAccountHomeBean.java:29)
at vivek.EJSRemoteCMPAccountHome.create(EJSRemoteCMPAccountHome.java:75)
at vivek._EJSRemoteCMPAccountHome_Stub.create(_EJSRemoteCMPAccountHome_Stub.java:242)
at AccountCMPServlet.service(AccountCMPServlet.java:32)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:860)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:167)
at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:297)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:110)
at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:502)
at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:1052)
at com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:947)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:648)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:379)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:134)
at com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:76)
at com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:182)
at com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:106)
at com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:125)
at com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:315)
at com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.java:60)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:417)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:321)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
----- Begin backtrace for detail
java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource
at com.ibm.rmi.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:266)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:146)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.lookup(ConcreteBeanClassExtensionImpl.java:474)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanClassExtensionImpl.getConnectionFactory(ConcreteBeanClassExtensionImpl.java:181)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getConnectionFactory(ConcreteBeanInstanceExtensionImpl.java:621)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getRecordFactory(ConcreteBeanInstanceExtensionImpl.java:855)
at com.ibm.ws.ejbpersistence.beanextensions.ConcreteBeanInstanceExtensionImpl.getInputRecord(ConcreteBeanInstanceExtensionImpl.java:756)
at vivek.ConcreteAccountBean.ejbCreate(ConcreteAccountBean.java:131)
at vivek.EJSCMPAccountHomeBean.create(EJSCMPAccountHomeBean.java:29)
at vivek.EJSRemoteCMPAccountHome.create(EJSRemoteCMPAccountHome.java:75)
at vivek._EJSRemoteCMPAccountHome_Stub.create(_EJSRemoteCMPAccountHome_Stub.java:242)
at AccountCMPServlet.service(AccountCMPServlet.java:32)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager.java:860)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycleServlet.java:167)
at com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServlet.java:297)
at com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycleServlet.java:110)
at com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:502)
at com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletManager.java:1052)
at com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManager.java:947)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:648)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:379)
at com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:134)
at com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:76)
at com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:182)
at com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:67)
at com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:106)
at com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:125)
at com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener.java:315)
at com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.java:60)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:417)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:321)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:122)
[11/29/02 14:25:50:708 IST] 4403f62d SystemOut U The Exception in Account :java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
com.ibm.ejs.container.CreateFailureException: java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource; nested exception is:
java.lang.ClassCastException: com.ibm.ws.rsadapter.cci.WSJdbcDataSource
can anyone help me out of this situation.
reply
    Bookmark Topic Watch Topic
  • New Topic