I have simple EJB with CMP fields
it does not have ejbCreate() & ejbPostCreate() functions, but has 
ejbCreate(long pk) ejbPostCreate(long pk) functions. Primary key class in 
deployment descriptor is java.lang.Long
Here is extract from class definition:

public class RoleBean implements EntityBean {
    public long roleID; //this is primary key
    public String roleName;

    public void ejbPostCreate(long roleID) throws CreateException {
    }
        
    public java.lang.Long ejbCreate(long roleID) throws CreateException, 
DuplicateKeyException {
        this.roleID = roleID;
        roleName = "";

        // In CMP, should return null.
        return null;
    }
//.....
}

public interface RoleHome extends EJBHome {
    public Role create(long roleID) throws CreateException, 
RemoteException;
    public Role findByPrimaryKey(java.lang.Long pk) throws 
FinderException, RemoteException;
    public Enumeration findByName(String roleName) throws 
FinderException, RemoteException;
    public Enumeration findAll() throws FinderException, RemoteException;
}

all bean classes compile successfully & are deployed in EJB container.
My client application can successfully retreieve & update bean 
information, but as soon as i try to write code to create new bean using 
create(long pk) it does not compile, giving following compilation error.

RoleClient.java:57: create() in bmall.ejbs.RoleHome cannot be applied to 
(long)
                Role role = home.create(1L);
 
and here is my client code

public class RoleClient {

    public static void main(String[] arg) {

        try {

            Properties p = new Properties();
            p.put(Context.INITIAL_CONTEXT_FACTORY, 
"com.sun.jndi.rmi.registry.RegistryContextFactory");
            p.put(Context.PROVIDER_URL, "rmi://localhost:1099");

            Context initialContext = new InitialContext(p);

            RoleHome home = (RoleHome) initialContext.lookup("Role");

                //following lines compile and executes with no problem updating 
database record 
            Role role = home.findByPrimaryKey(new Long(0L));
            role.setName("updating role name");     

                //this line fails to compile with above error message
          Role role = home.create(1L);

        } catch (Exception e) {
                //probably not the best way to hadle exceptions, but ok for simple 
testing
            e.printStackTrace();
        }
}

these do not really make sence to me, but most likely i am missing some 
very important.

Thank you very much for your help

----
To unsubscribe, send email to [EMAIL PROTECTED] and
include in the body of the message "unsubscribe jonas-users".
For general help, send email to [EMAIL PROTECTED] and
include in the body of the message "help".

Reply via email to