跪求EJB问题~
折磨了我三天,还是没找到问题具体所在,哪路大侠能帮小弟一把,把我从水深火热中拯救出来,给我点提示什么都行。。。555
我做的是一个信息发布系统,BS,实现方法是JSP调用Servlet再调用SessionBean再EntityBean,我的问题出在信息插入后转到浏览信息页面时看不到刚插入进去的记录,报错在SessionBean调用EntityBean的任一Get方法时,错误信息是ClassCastException,但是我关掉重新启动Weblogic重新登陆浏览页面数据显示确完好,插入的数据也能正确显示,我一直很恼火即时插入的数据为什么看不到,还要重新启动服务器登陆才能看到,这个问题在删除数据的时候又没有出现,我想哭,帮帮我啊
服务器错误信息如下:
EJB Exception: : java.lang.ClassCastException: java.lang.St
ring
at com.news.NewsPK.equals(Ljava.lang.Object;)Z(NewsPK.java:21)
at weblogic.ejb20.cache.CacheKey.equals(Ljava.lang.Object;)Z(CacheKey.ja
va:52)
at weblogic.utils.collections.ConcurrentHashMap.get(Ljava.lang.Object;I)
Ljava.lang.Object;(ConcurrentHashMap.java:196)
at weblogic.utils.collections.ConcurrentHashMap.get(Ljava.lang.Object;)L
java.lang.Object;(ConcurrentHashMap.java:187)
at weblogic.ejb20.cache.EntityCache.get(Ljavax.transaction.Transaction;L
weblogic.ejb20.cache.CacheKey;Lweblogic.ejb20.persistence.spi.RSInfo;)Ljavax.ejb
.EntityBean;(EntityCache.java:121)
at weblogic.ejb20.cache.EntityCache.get(Ljavax.transaction.Transaction;L
weblogic.ejb20.cache.CacheKey;)Ljavax.ejb.EntityBean;(EntityCache.java:110)
at weblogic.ejb20.manager.DBManager.getReadyBean(Ljavax.transaction.Tran
saction;Ljava.lang.Object;)Ljavax.ejb.EntityBean;(DBManager.java:270)
at weblogic.ejb20.manager.DBManager.preInvoke(Lweblogic.ejb20.internal.I
nvocationWrapper;)Ljavax.ejb.EnterpriseBean;(DBManager.java:249)
at weblogic.ejb20.internal.BaseEJBObject.preInvoke(Lweblogic.ejb20.inter
nal.InvocationWrapper;)Lweblogic.ejb20.internal.InvocationWrapper;(BaseEJBObject
.java:137)
at weblogic.ejb20.internal.EntityEJBObject.preInvoke(Lweblogic.ejb20.int
ernal.MethodDescriptor;Lweblogic.security.service.ContextHandler;)Lweblogic.ejb2
0.internal.InvocationWrapper;(EntityEJBObject.java:89)
at com.news.News_v0vak9_EOImpl.getID()I(News_v0vak9_EOImpl.java:79)
at com.news.NewsSessionBean.findAllnews(Ljava.lang.String;)Ljava.util.Co
llection;(NewsSessionBean.java:396)
at com.news.SessionBean4_6hwv7p_EOImpl.findAllnews(Ljava.lang.String;)Lj
ava.util.Collection;(SessionBean4_6hwv7p_EOImpl.java:148)
at com.news.SessionBean4_6hwv7p_EOImpl_WLSkel.invoke(I[Ljava.lang.Object
;Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at weblogic.rmi.internal.ServerRequest.sendReceive()Lweblogic.rmi.spi.In
boundResponse;(ServerRequest.java:166)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Lweblogic.rmi.exten
sions.server.RemoteReference;Lweblogic.rmi.extensions.server.RuntimeMethodDescri
ptor;[Ljava.lang.Object;Ljava.lang.reflect.Method;)Ljava.lang.Object;(ReplicaAwa
reRemoteRef.java:284)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(Ljava.rmi.Remote;Lw
eblogic.rmi.extensions.server.RuntimeMethodDescriptor;[Ljava.lang.Object;Ljava.l
ang.reflect.Method;)Ljava.lang.Object;(ReplicaAwareRemoteRef.java:244)
at com.news.SessionBean4_6hwv7p_EOImpl_813_WLStub.findAllnews(Ljava.lang
.String;)Ljava.util.Collection;(Unknown Source)
at com.news.MNewsbean.getAllNews(Ljava.lang.String;)Ljava.util.Collectio
n;(MNewsbean.java:95)
at com.cn.PageServlet.doGet(Ljavax.servlet.http.HttpServletRequest;Ljava
x.servlet.http.HttpServletResponse;)V(PageServlet.java:19)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.http.HttpServle
tRequest;Ljavax.servlet.http.HttpServletResponse;)V(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;
Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.Filte
rChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servle
t.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run()Ljava.lang.Object;(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.se
curity.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Objec
t;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.ac
l.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSub
ject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:11
8)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogi
c.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponse
Impl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel
.ExecuteThread;)V(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest
;)V(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:178)
; nested exception is:
java.lang.ClassCastException: java.lang.String
问题点数:0、回复次数:8Top
1 楼heijigaoke(天才菜鸟程序员(*为了程序我失去了女朋友,失去满头秀发,我一定要成功!))回复于 2005-02-03 08:46:34 得分 0
请仔细检查自己的代码Top
2 楼lydong(西瓜水)回复于 2005-02-03 09:11:41 得分 0
at com.news.NewsPK.equals(Ljava.lang.Object;)Z(NewsPK.java:21)
这段代码改过,几个地方(jar)都有这个程序,版本不一致Top
3 楼yiboo(生活在冻土的冰凌,爱上了沙漠的阳光)回复于 2005-02-03 09:53:07 得分 0
没有代码..不知道怎么错的Top
4 楼centgo(我就是我)回复于 2005-02-04 10:01:58 得分 0
看看你的EntityBean是bmp还是cmp
如果是bmp可能是你还没有提交Top
5 楼ysilent(ysilent)回复于 2005-02-04 14:07:39 得分 0
检查一下看各种转换,比如说把一个从数据库传来的数据直接赋给float,int等而没有用Integer.parseInt方法等,为什么要用EntityBean啊,自找苦吃啊。开发中我从来不会考虑EntityBean,退一万步,我什么其他工具都没有,我也用SessionBean跟数据库打交道。Top
6 楼xitianjile(空想社會主義)回复于 2005-02-04 14:17:33 得分 0
俺是菜鸟路过帮顶而已!Top
7 楼cooltigerzsh(阿波罗)回复于 2005-02-04 14:31:36 得分 0
对啊,不用EntityBean试试Top
8 楼dennis03(葳蕤)回复于 2005-02-04 14:40:14 得分 0
我用EntityBean很好啊,一直没出过这种事!Top




