我做的一个很简单的sessionBean运行时出错了,不知道是为什么??请大虾进来看一下!解决后50分全部相送!!

iceman09 2003-08-23 05:03:22
这个就是我的有状态会话bean
package sessionbean;

import javax.ejb.*;
import java.rmi.*;
import java.lang.*;
import java.util.*;
import java.io.Serializable;

public class Enterprise1Bean implements SessionBean {
SessionContext sessionContext;
java.lang.String cardHolderName;
java.lang.String creditCardNumber;
java.util.Vector items;
public void ejbCreate(String _cardHolderName,String _creditCardNumber) throws CreateException {
cardHolderName = _cardHolderName;
creditCardNumber = _creditCardNumber;
}
public void ejbRemove() {
/**@todo Complete this method*/
}
public void ejbActivate() {
/**@todo Complete this method*/
}
public void ejbPassivate() {
/**@todo Complete this method*/
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public void addItem(Item item) {
System.out.println("\t addItem"+item.getTitle());
items.addElement(item);
}
public void removeItem(Item item) {
System.out.println("remove item"+item.getTitle());
Enumeration elements = items.elements();
while(elements.hasMoreElements()){
Item current = (Item)elements.nextElement();
if(item.getClass().equals(current.getClass())&&item.getTitle().equals(current.getTitle())){
items.removeElement(current);
return;
}
}
}
public float getTotalPrice() {
System.out.println("\t getTotalPrice:");
float totalPrice = 0f;
Enumeration elements = items.elements();
while(elements.hasMoreElements()){
Item current = (Item)elements.nextElement();
totalPrice +=current.getPrice();
}
return (long)(totalPrice*100)/100;
}
public void purchase() {
/**@todo Complete this method*/
}
}
这是客户端测试代码:
public static void main(String[] args) {
Enterprise1TestClient1 client = new Enterprise1TestClient1();
String cardHolderName = "jackb.d";
String creditCardNumber = "1234-123-34234-123";
client.create(cardHolderName,creditCardNumber);
Item knuthBook1 = new Item("the art of jsp",49.95f);
Item knuthBook2 = new Item("the art of book",49.95f);
client.addItem(knuthBook1);
client.addItem(knuthBook2);
client.removeItem(knuthBook1);
client.purchase();
// Use the client object to call one of the Home interface wrappers
// above, to create a Remote interface reference to the bean.
// If the return value is of the Remote interface type, you can use it
// to access the remote interface methods. You can also just use the
// client object to call the Remote interface wrappers.
}
...全文
37 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Morgan_ma 2003-08-24
  • 打赏
  • 举报
回复
SessionContext sessionContext;
java.lang.String cardHolderName;
java.lang.String creditCardNumber;
java.util.Vector items;
Vector items = new Vector();->加这里试试看。。。
iceman09 2003-08-24
  • 打赏
  • 举报
回复

我已经加了,可是还报同样的错误!?
public Enterprise1 create(String _cardHolderName, String _creditCardNumber) {
Vector items = new Vector();//是在这里加入吗?
long startTime = 0;
if (logging) {
log("Calling create(" + _cardHolderName + ", " + _creditCardNumber + ")");
startTime = System.currentTimeMillis();
}
try {
enterprise1 = enterprise1Home.create(_cardHolderName, _creditCardNumber);
if (logging) {
long endTime = System.currentTimeMillis();
log("Succeeded: create(" + _cardHolderName + ", " + _creditCardNumber + ")");
log("Execution time: " + (endTime - startTime) + " ms.");
}
}
catch(Exception e) {
if (logging) {
log("Failed: create(" + _cardHolderName + ", " + _creditCardNumber + ")");
}
e.printStackTrace();
}

if (logging) {
log("Return value from create(" + _cardHolderName + ", " + _creditCardNumber + "): " + enterprise1 + ".");
}
return enterprise1;
}
Morgan_ma 2003-08-24
  • 打赏
  • 举报
回复
同意楼上的观点。。。
wangchq 2003-08-23
  • 打赏
  • 举报
回复
你的items是空对象,不能执行add的操作,你不能对一个null执行操作的。
和ejb没关系。
先把它初始化赋值,比如items=new Vector();
fxfboy 2003-08-23
  • 打赏
  • 举报
回复
建议楼主在create方法中加入items=new Vector();初始化一下,在试试!
iceman09 2003-08-23
  • 打赏
  • 举报
回复
报错如下:
D:\bea\jdk131_02\bin\javaw -classpath "D:\jbuilder8Work\SessionBean\classes;D:\bea\weblogic700\server\lib\weblogic.jar;D:\bea\jdk131_02\jre\lib\i18n.jar;D:\bea\jdk131_02\jre\lib\jaws.jar;D:\bea\jdk131_02\jre\lib\rt.jar;D:\bea\jdk131_02\jre\lib\sunrsasign.jar;D:\bea\jdk131_02\lib\dt.jar;D:\bea\jdk131_02\lib\htmlconverter.jar;D:\bea\jdk131_02\lib\tools.jar" sessionbean.Enterprise1TestClient1
-- Initializing bean access.
-- Succeeded initializing local bean access through Local Home interface.
-- Execution time: 2266 ms.
-- Calling create(jackb.d, 1234-123-34234-123)
-- Succeeded: create(jackb.d, 1234-123-34234-123)
-- Execution time: 125 ms.
-- Return value from create(jackb.d, 1234-123-34234-123): sessionbean.Enterprise1Bean_st8cog_EOImpl_WLS ...
-- Calling addItem(sessionbean.Item@59e5ad)
java.rmi.RemoteException: EJB Exception: ; nested exception is:
java.lang.NullPointerException
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
java.lang.NullPointerException
java.lang.NullPointerException
at sessionbean.Enterprise1Bean.addItem(Enterprise1Bean.java:32)
at sessionbean.Enterprise1Bean_st8cog_EOImpl.addItem(Enterprise1Bean_st8cog_EOImpl.java:198)
at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:87)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:300)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:295)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
End server side stack trace
; nested exception is:
java.lang.NullPointerException:
Start server side stack trace:
java.lang.NullPointerException
at sessionbean.Enterprise1Bean.addItem(Enterprise1Bean.java:32)
at sessionbean.Enterprise1Bean_st8cog_EOImpl.addItem(Enterprise1Bean_st8cog_EOImpl.java:198)
at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:87)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:300)
at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:762)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:295)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
End server side stack trace
-- Failed: addItem(sessionbean.Item@59e5ad)

at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)

End server side stack trace
-- Calling addItem(sessionbean.Item@620ef8)

-- Failed: addItem(sessionbean.Item@620ef8)



at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)

at weblogic.rmi.internal.activation.ActivatableRemoteRef.invoke(ActivatableRemoteRef.java:82)

at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLStub.addItem(Unknown Source)

at sessionbean.Enterprise1TestClient1.addItem(Enterprise1TestClient1.java:119)

at sessionbean.Enterprise1TestClient1.main(Enterprise1TestClient1.java:251)

java.rmi.NoSuchObjectException: Bean has been deleted.

Start server side stack trace:
java.rmi.NoSuchObjectException: Bean has been deleted.

at weblogic.ejb20.swap.DiskSwap.read(DiskSwap.java:155)

at weblogic.ejb20.manager.StatefulSessionManager.getBean(StatefulSessionManager.java:280)

at weblogic.ejb20.manager.StatefulSessionManager.preInvoke(StatefulSessionManager.java:349)

at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:126)

at weblogic.ejb20.internal.StatefulEJBObject.preInvoke(StatefulEJBObject.java:184)

at sessionbean.Enterprise1Bean_st8cog_EOImpl.removeItem(Enterprise1Bean_st8cog_EOImpl.java:130)

at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLSkel.invoke(Unknown Source)

at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:87)

at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:300)

at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:762)

at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:295)

at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)

End server side stack trace
-- Calling removeItem(sessionbean.Item@59e5ad)

-- Failed: removeItem(sessionbean.Item@59e5ad)



at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)

at weblogic.rmi.internal.activation.ActivatableRemoteRef.invoke(ActivatableRemoteRef.java:82)

at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLStub.removeItem(Unknown Source)

at sessionbean.Enterprise1TestClient1.removeItem(Enterprise1TestClient1.java:147)

at sessionbean.Enterprise1TestClient1.main(Enterprise1TestClient1.java:252)

-- Calling purchase()

java.rmi.NoSuchObjectException: Bean has been deleted.

Start server side stack trace:
java.rmi.NoSuchObjectException: Bean has been deleted.

at weblogic.ejb20.swap.DiskSwap.read(DiskSwap.java:155)

at weblogic.ejb20.manager.StatefulSessionManager.getBean(StatefulSessionManager.java:280)

at weblogic.ejb20.manager.StatefulSessionManager.preInvoke(StatefulSessionManager.java:349)

at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:126)

at weblogic.ejb20.internal.StatefulEJBObject.preInvoke(StatefulEJBObject.java:184)

at sessionbean.Enterprise1Bean_st8cog_EOImpl.purchase(Enterprise1Bean_st8cog_EOImpl.java:28)

at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLSkel.invoke(Unknown Source)

at weblogic.rmi.internal.activation.ActivatableServerRef.invoke(ActivatableServerRef.java:87)

at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:300)

at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:762)

at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:295)

at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)

End server side stack trace
-- Failed: purchase()



at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:109)

at weblogic.rmi.internal.activation.ActivatableRemoteRef.invoke(ActivatableRemoteRef.java:82)

at sessionbean.Enterprise1Bean_st8cog_EOImpl_WLStub.purchase(Unknown Source)

at sessionbean.Enterprise1TestClient1.purchase(Enterprise1TestClient1.java:210)

at sessionbean.Enterprise1TestClient1.main(Enterprise1TestClient1.java:253)

你想当“李逍遥”式的“大侠”吗? 这里无需计算机基础,无需编程经验,你也不必是计算机专业的在校大学生....只要爱好游戏,怀揣梦想! 有一定自主学习能力,跟着刘老师从“编程小白”修炼为游戏研发“大虾”吧!!!学习好Unity,其先决条件是一定要有稳固、扎实的编程基础!课程 《C# For Unity系列之入门篇》配套学习资料链接:http://pan.baidu.com/s/1gflxreN 密码:sou5;刘老师讲Unity学员群(2) 497429806一、热更新系列(技术含量:中高级):A:《lua热更新技术中级篇》https://edu.csdn.net/course/detail/27087B:《热更新框架设计之Xlua基础视频课程》https://edu.csdn.net/course/detail/27110C:《热更新框架设计之热更流程与热补丁技术》https://edu.csdn.net/course/detail/27118D:《热更新框架设计之客户端热更框架(上)》https://edu.csdn.net/course/detail/27132E:《热更新框架设计之客户端热更框架(中)》https://edu.csdn.net/course/detail/27135F:《热更新框架设计之客户端热更框架(下)》https://edu.csdn.net/course/detail/27136二:框架设计系列(技术含量:中级): A:《游戏UI界面框架设计系列视频课程》https://edu.csdn.net/course/detail/27142B:《Unity客户端框架设计PureMVC篇视频课程(上)》https://edu.csdn.net/course/detail/27172C:《Unity客户端框架设计PureMVC篇视频课程(下)》https://edu.csdn.net/course/detail/27173D:《AssetBundle框架设计_框架篇视频课程》https://edu.csdn.net/course/detail/27169三、Unity脚本从入门到精通(技术含量:初级)A:《C# For Unity系列之入门篇》https://edu.csdn.net/course/detail/4560B:《C# For Unity系列之基础篇》https://edu.csdn.net/course/detail/4595C: 《C# For Unity系列之中级篇》https://edu.csdn.net/course/detail/24422D:《C# For Unity系列之进阶篇》https://edu.csdn.net/course/detail/24465四、虚拟现实(VR)与增强现实(AR):(技术含量:初级)A:《虚拟现实之汽车仿真模拟系统 》https://edu.csdn.net/course/detail/26618五、Unity基础课程系列(技术含量:初级) A:《台球游戏与FlappyBirds—Unity快速入门系列视频课程(第1部)》 https://edu.csdn.net/course/detail/24643B:《太空射击与移动端发布技术-Unity快速入门系列视频课程(第2部)》https://edu.csdn.net/course/detail/24645 C:《Unity ECS(二) 小试牛刀》https://edu.csdn.net/course/detail/27096六、Unity ARPG课程(技术含量:初中级):A:《MMOARPG地下守护神_单机版实战视频课程(上部)》https://edu.csdn.net/course/detail/24965B:《MMOARPG地下守护神_单机版实战视频课程(中部)》https://edu.csdn.net/course/detail/24968C:《MMOARPG地下守护神_单机版实战视频课程(下部)》https://edu.csdn.net/course/detail/24979

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧