下面是测试类里面的代码java.util.Properties properties =new java.util.Properties();
properties.put(InitialContext.PROVIDER_URL,"iiop://localhost:2811");
properties.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
InitialContext ctx = new InitialContext(properties);
if(ctx == null){
System.out.println("ctx is null");
}else{
System.out.println("ctx is not null");
}
System.out.println(ctx.getNameInNamespace());
Object bidManager=ctx.lookup("ejb/ActionBazaar3EAR/ActionBazaar3.jar/BidManagerBean#ejb.bean.actionbazaar.ejb.BidManager");
BidManager result = (BidManager)javax.rmi.PortableRemoteObject.narrow(bidManager,BidManager.class);
if(bidManager == null){
System.out.println("bidManager is null");
}else{
System.out.println("bidManager is not null");
}
System.out.println(result.addBid(bid));
System.out.println(bid.getBidderName());
System.out.println(bid.getItemName());
System.out.println(bid.getItemPrice());
} catch (NamingException e) {
e.printStackTrace();
}
运行测试类代码后出现一异常,代码如下:
Exception in thread "P=471843:O=0:CT" java.lang.ClassCastException: Unable to load class: ejb.bean.actionbazaar.ejb._BidManager_Stub
让我迷惑的是为什么要我加载类_BidManager_Stub,我的工程里面没有写这个类
properties.put(InitialContext.PROVIDER_URL,"iiop://localhost:2811");
properties.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
InitialContext ctx = new InitialContext(properties);
if(ctx == null){
System.out.println("ctx is null");
}else{
System.out.println("ctx is not null");
}
System.out.println(ctx.getNameInNamespace());
Object bidManager=ctx.lookup("ejb/ActionBazaar3EAR/ActionBazaar3.jar/BidManagerBean#ejb.bean.actionbazaar.ejb.BidManager");
BidManager result = (BidManager)javax.rmi.PortableRemoteObject.narrow(bidManager,BidManager.class);
if(bidManager == null){
System.out.println("bidManager is null");
}else{
System.out.println("bidManager is not null");
}
System.out.println(result.addBid(bid));
System.out.println(bid.getBidderName());
System.out.println(bid.getItemName());
System.out.println(bid.getItemPrice());
} catch (NamingException e) {
e.printStackTrace();
}
运行测试类代码后出现一异常,代码如下:
Exception in thread "P=471843:O=0:CT" java.lang.ClassCastException: Unable to load class: ejb.bean.actionbazaar.ejb._BidManager_Stub
让我迷惑的是为什么要我加载类_BidManager_Stub,我的工程里面没有写这个类
EJB包需要在J2EE容器中发布。