可能楼主还没明白我的意思,大致给你个框架: 作为你的sessionbean 来说(两个接口,一个类) 其中一个接口: //以下就以两个接口: 1. public interface AccessStoreHome extends EJBHome { public AccessStoreFcd create() throws CreateException, RemoteException; ... }2.public interface AccessStoreFcd extends EJBObject{ public java.util.ArrayList getAllItems( ) throws java.rmi.RemoteException; ...... }//一个类: public class AccessStoreBean implements SessionBean { public AccessStoreBean() { super(); } public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} //----------------------------method--------------------- public java.util.ArrayList getAllItems(Collection items) throws EJBException{ //具体方法 .... }
}
当然以上还需要通过cmp的JNDI来定位了。
我现在的确实和你说的一样啊我贴出来:1。StoreAccessHomepublic interface StoreAccessHome extends javax.ejb.EJBHome { public static final String COMP_NAME="java:comp/env/ejb/StoreAccess"; public static final String JNDI_NAME="StoreAccessBean"; public test.StoreAccess create() throws javax.ejb.CreateException,java.rmi.RemoteException;
两个接口,一个类
EJBObject 抛出 RemoteException;而EJBHome 抛出CreateException, RemoteException
至于类就是具体操作了这里一般都以自建异常为佳。我给了你大致的框架,所以楼主,你自己斟酌看看你是否错在哪里
1。 EJBHome(AccessStoreHome)中“出CreateException, RemoteException”没错,这里只是一个Create方法,至于部署失败提示出错的方法不用在这里有吧
2。 EJBObject里确实有
public java.util.ArrayList getAllItems( ) throws java.rmi.RemoteException;
别的方法也是这么做的,我是每加一个方法部署一次,加别的方法没有出错,只是这个有问题。另外,我是用Eclipse 的 lomboz 插件自动生成在EJBHome等的。
还望指教12,谢谢
作为你的sessionbean 来说(两个接口,一个类)
其中一个接口:
//以下就以两个接口:
1. public interface AccessStoreHome extends EJBHome {
public AccessStoreFcd create() throws CreateException, RemoteException;
...
}2.public interface AccessStoreFcd extends EJBObject{
public java.util.ArrayList getAllItems( ) throws java.rmi.RemoteException;
......
}//一个类:
public class AccessStoreBean
implements SessionBean {
public AccessStoreBean() {
super();
} public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {}
//----------------------------method---------------------
public java.util.ArrayList getAllItems(Collection items) throws EJBException{
//具体方法
.... }
}
extends javax.ejb.EJBHome
{
public static final String COMP_NAME="java:comp/env/ejb/StoreAccess";
public static final String JNDI_NAME="StoreAccessBean"; public test.StoreAccess create()
throws javax.ejb.CreateException,java.rmi.RemoteException;
}2。StoreAccesspublic interface StoreAccess
extends javax.ejb.EJBObject
{ ..................... public java.util.ArrayList getItemBySupplier( java.lang.String supplierID )
throws java.rmi.RemoteException; public java.util.ArrayList getAllItems( )
throws java.rmi.RemoteException;
}3. StoreAccessBeanpublic abstract class StoreAccessBean implements SessionBean {protected SessionContext ctx;public void setSessionContext(javax.ejb.SessionContext ctx)
{
this.ctx = ctx;
}public void unsetSessionContext()
{
this.ctx = null;
}/**
* the ejbCreate method
* @ejb.create-method
**/
public void ejbCreate () throws javax.ejb.CreateException{ ....................
}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}public java.util.ArrayList getAllItems() throws java.rmi.RemoteException{
System.out.println("Entering StoreAccessBean.getAllItems()");
ArrayList itemlist = new ArrayList();
try {
.............................. }catch(Exception e){
System.out.println("Error in StoreAccessBean.getAllItems()"+e);
}
System.out.println("Leaving StoreAccessBean.getAllItems()");
return itemlist;
}
}
重新部署还是一样的错。
可能是临时文件的问题
server\default\tmp\deploy文件夹做什么的啊,为什么启动jboss后要用里面的临时文件?
我把里面的文件删除,又。,就好了呵呵,结了