Ok - I went postal on the code. I stripped out everything
with dependent object and create a trivial 1:N dependent
object, Foo. Orion seemed to deploy it since no errors
were thrown. I say "seemed" because I cannot figure out
(by looking at the tables in the database) how Orion
is going to map the EJB and the Foo dependent objects.
It created two tables:
edifileejb:
-----------
id: varchar()
filename: varchar()
datedownloaded: timestamp
edifileejb_foo:
---------------
id: varchar()
valuebar1: varchar()
valuebar2: varchar()
DOH! I think I just figured it out while I was typing! My
Foo object doesn't declare an id attribute. Orion must have
added it for me and I bet it maps back to the id field in
the edifileejb table.
I took out the id field that I had placed in the EdiEnvelope
DO that has problems. It still didn't work. There must
be something else.
Now I have to figure out what I did in the EdiEnvelope DO
that keeps causing Orion to throw that "can't instantiate
abstract object" exception.
-tim
> -----Original Message-----
> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> Sent: Friday, November 10, 2000 3:46 PM
> To: Tim Drury; Orion-Interest
> Subject: RE: ejb2: EJB->DO, 1 to many problem
>
>
> OK Tim. Let me know if you don't find it by some time this
> evening and I
> can look it over this weekend. All I ask is that if you do
> find it you let
> me know so I can not put time in to it unnecesserally.
>
> I do have the PD1 spec and I'll send it to you, but I can't
> do so for an
> hour or so. You will find very minor changes, like the removal of the
> deepcopy() method decloration (it was required in pd1,
> removed in pd2).
>
> Jim
>
>
> --On Friday, November 10, 2000 3:32 PM -0500 Tim Drury
> <[EMAIL PROTECTED]> wrote:
>
> >
> > I took out the bi-directional stuff (I had actually
> > tried both ways). No luck. I went ahead and upgraded
> > to 1.4.4 and it still gave me the same problem. There
> > must be an error in my code (something not abstract
> > when it should be or visa versa) or something wrong
> > with ejb-jar.xml.
> >
> > BTW, 1.4.4 still requires you create a <cmp-field> for
> > your dependent object collection.
> >
> > ALSO: do you (or anyone on the list) have a copy of
> > the ejb 2.0 pd1 spec? I have pd2 and pdFinal, but
> > not the one that Orion is based on. Maybe that would
> > help me find my problem. I couldn't find pd1 on the
> > sun site.
> >
> > -tim
> >
> >> -----Original Message-----
> >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> >> Sent: Friday, November 10, 2000 3:16 PM
> >> To: Tim Drury; Orion-Interest
> >> Subject: RE: ejb2: EJB->DO, 1 to many problem
> >>
> >>
> >> Tim, I just reviewed your messages again, a bit more
> >> carefully. I see your
> >> using Orion 1.4 and you have posted your code and descriptors.
> >>
> >> It looks like you are defineing a *bidirectional*
> >> relationship between your
> >> EB and dependent. This will fail under Orion 1.4. The example
> >> I sent you
> >> will fail under 1.4, as it was designed to as a demonstration
> >> of the bug. A
> >> *unidirectional* relationship will work.
> >>
> >> Anyhow, I just added a comment to a bit of your descriptor
> >> (right below)
> >> that will make this a unidirectional relationship. Try that
> >> change and if
> >> it will deploy. If it does not deploy I'll take some time to
> >> look over your
> >> code and descriptors when I can, but not right away. I'm
> just became
> >> swamped. Always a crisis!
> >>
> >> If you need the bidirectional relationship, you'll need to go
> >> to 1.4.4,
> >> where this is supposed to work, although I have not tested it yet.
> >>
> >> <ejb-relation>
> >> <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> >> <ejb-relationship-role>
> >>
> >>
> >> <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> >> tionship-role
> >> - name>
> >> <multiplicity>one</multiplicity>
> >> <role-source>
> >> <ejb-name>EdiFileEJB</ejb-name>
> >> </role-source>
> >> <cmr-field>
> >> <cmr-field-name>envelopes</cmr-field-name>
> >> <cmr-field-type>java.util.Collection</cmr-field-type>
> >> </cmr-field>
> >> </ejb-relationship-role>
> >>
> >> <ejb-relationship-role>
> >>
> >> <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> >> b-relationshi
> >> p -role-name>
> >> <multiplicity>many</multiplicity>
> >> <role-source>
> >> <dependent-name>EdiEnvelope</dependent-name>
> >> </role-source>
> >>
> >> <!-- This cmr-field tag makes this a bidirectional
> >> relationship that
> >> will fail under Orion 1.4
> >> <cmr-field>
> >> <cmr-field-name>ediFile</cmr-field-name>
> >> </cmr-field>
> >> -->
> >>
> >>
> >> </ejb-relationship-role>
> >> </ejb-relation>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --On Friday, November 10, 2000 2:54 PM -0500 Tim Drury
> >> <[EMAIL PROTECTED]> wrote:
> >>
> >> >
> >> > I did put that in. In fact, it was your examples
> >> > that I based all my development on :)
> >> >
> >> > I just don't see any differences between your
> >> > descriptor file and mine.
> >> >
> >> > -tim
> >> >
> >> >
> >> >> -----Original Message-----
> >> >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> >> >> Sent: Friday, November 10, 2000 2:31 PM
> >> >> To: Tim Drury; Orion-Interest
> >> >> Subject: RE: ejb2: EJB->DO, 1 to many problem
> >> >>
> >> >>
> >> >> Hi Tim...
> >> >>
> >> >> No, I didn't mean in the relationship tag. Sorry for the
> >> >> confusion. My
> >> >> fault entirely. I meant in the <entity> tag.
> >> >>
> >> >> The descriptor I pasted below is an example of one which
> >> >> fails to deploy on
> >> >> Orion 1.4.0 because of a now fixed Orion bug (I have not yet
> >> >> retested but
> >> >> Bugzilla says its fixed in 1.4.4). However, if you exampne
> >> >> the part that
> >> >> defines the entity beans you'll see what I mean. There is a
> >> >> comment you
> >> >> can't miss.
> >> >>
> >> >> Let us know if it works and if not we'll look at other things.
> >> >>
> >> >> Jim
> >> >>
> >> >>
> >> >> <?xml version="1.0"?>
> >> >> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems,
> Inc.//DTD Enterprise
> >> >> JavaBeans 2.0//EN"
> "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd">
> >> >> <ejb-jar>
> >> >> <description>Test Sample EJB 2.0 EB</description>
> >> >> <display-name>Person</display-name>
> >> >> <enterprise-beans>
> >> >> <entity>
> >> >> <cmp-version>2.0</cmp-version>
> >> >> <description>Person</description>
> >> >>
> >> >> <display-name>Test20CmpDoOM.eb.Person</display-name>
> >> >>
> <ejb-name>Test20CmpDoOM.eb.PersonEJB</ejb-name>
> >> >> <home>Test20CmpDoOM.eb.PersonHome</home>
> >> >> <remote>Test20CmpDoOM.eb.Person</remote>
> >> >>
> >> >> <ejb-class>Test20CmpDoOM.eb.PersonEJB</ejb-class>
> >> >>
> <persistence-type>Container</persistence-type>
> >> >>
> >> >> <prim-key-class>java.lang.String</prim-key-class>
> >> >> <reentrant>True</reentrant>
> >> >>
> >> >> <!-- These lines should not be required
> >> >> (according to the spec) -->
> >> >> <!-- but without them
> deployment fails -->
> >> >>
> >> >> <cmp-field><field-name>addrDo</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>emailDos</field-name></cmp-field>
> >> >>
> >> >>
> >> >> <cmp-field><field-name>userId</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>firstName</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>lastName</field-name></cmp-field>
> >> >>
> >> >> <primkey-field>userId</primkey-field>
> >> >> </entity>
> >> >> </enterprise-beans>
> >> >>
> >> >> <dependents>
> >> >> <dependent>
> >> >> <dependent-name>addrDo</dependent-name>
> >> >>
> >> >> <dependent-class>Test20CmpDoOM.eb.AddrDo</dependent-class>
> >> >>
> >> >> <cmp-field><field-name>street</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>city</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>state</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>zip</field-name></cmp-field>
> >> >> </dependent>
> >> >> <dependent>
> >> >> <dependent-name>emailDo</dependent-name>
> >> >>
> >> >> <dependent-class>Test20CmpDoOM.eb.EmailDo</dependent-class>
> >> >>
> >> >> <cmp-field><field-name>email</field-name></cmp-field>
> >> >>
> >> >> <cmp-field><field-name>person</field-name></cmp-field>
> >> >> </dependent>
> >> >> </dependents>
> >> >>
> >> >> <relationships>
> >> >> <ejb-relation>
> >> >>
> >> >> <ejb-relation-name>Person-Address</ejb-relation-name>
> >> >> <ejb-relationship-role>
> >> >>
> >> >>
> >> >> <ejb-relationship-role-name>Person-has-Address</ejb-relationsh
> >> >> ip-role-name>
> >> >> <multiplicity>one</multiplicity>
> >> >>
> >> >> <role-source><ejb-name>Test20CmpDoOM.eb.Person</ejb-name></rol
> >> >> e-source>
> >> >> <cmr-field>
> >> >>
> >> >> <cmr-field-name>addrDo</cmr-field-name>
> >> >>
> >> >> <cmr-field-type>Test20CmpDoOM.eb.AddrDo</cmr-field-type>
> >> >> </cmr-field>
> >> >> </ejb-relationship-role>
> >> >> <ejb-relationship-role>
> >> >>
> >> >>
> >> >> <ejb-relationship-role-name>Address-belongsto-User</ejb-relati
> >> >> onship-role-
> >> >> name>
> >> >> <multiplicity>one</multiplicity>
> >> >>
> >> >>
> <role-source><dependent-name>addrDo</dependent-name></role-source>
> >> >> </ejb-relationship-role>
> >> >> </ejb-relation>
> >> >>
> >> >> <ejb-relation>
> >> >>
> >> >> <ejb-relation-name>Person-Email</ejb-relation-name>
> >> >> <ejb-relationship-role>
> >> >>
> >> >>
> >> >> <ejb-relationship-role-name>Person-has-Email</ejb-relationship
> >> >> -role-name>
> >> >> <multiplicity>one</multiplicity>
> >> >>
> >> >>
> >> >> <role-source><ejb-name>Test20CmpDoOM.eb.PersonEJB</ejb-name></
> >> >> role-source>
> >> >> <cmr-field>
> >> >>
> >> >> <cmr-field-name>emailDos</cmr-field-name>
> >> >>
> >> >> <cmr-field-type>java.util.Collection</cmr-field-type>
> >> >> </cmr-field>
> >> >> </ejb-relationship-role>
> >> >> <ejb-relationship-role>
> >> >>
> >> >>
> >> >> <ejb-relationship-role-name>Email-belongsto-User</ejb-relation
> >> >> ship-role-na
> >> >> me>
> >> >>
> <multiplicity>many</multiplicity>
> >> >>
> >> >>
> <role-source><dependent-name>emailDo</dependent-name></role-source>
> >> >> <!-- -->
> >> >> <cmr-field>
> >> >>
> >> >> <cmr-field-name>person</cmr-field-name>
> >> >>
> >> >> <cmr-field-type>Test20CmpDoOM.eb.Person</cmr-field-type>
> >> >> </cmr-field>
> >> >> <!-- -->
> >> >> </ejb-relationship-role>
> >> >> </ejb-relation>
> >> >> </relationships>
> >> >>
> >> >> <assembly-descriptor>
> >> >> <security-role>
> >> >> <description>Users</description>
> >> >> <role-name>users</role-name>
> >> >> </security-role>
> >> >> </assembly-descriptor>
> >> >> </ejb-jar>
> >> >>
> >> >>
> >> >> --On Friday, November 10, 2000 2:19 PM -0500 Tim Drury
> >> >> <[EMAIL PROTECTED]> wrote:
> >> >>
> >> >> >
> >> >> > Jim,
> >> >> >
> >> >> > Thanks for the quick response. I'm using 1.4 and I've
> >> >> > gotten 1:1 to work. I think my problem may be what
> >> >> > you mentioned about a non-standard CMR field in
> >> >> > ejb-jar.xml. What are you talking about exactly?
> >> >> > In the <relationship> tag? Here is my relationship
> >> >> > area again:
> >> >> >
> >> >> > <ejb-relation>
> >> >> > <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> >> >> > <ejb-relationship-role>
> >> >> >
> >> >> >
> >> >> <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> >> >> tionship-ro
> >> >> > le- name>
> >> >> > <multiplicity>one</multiplicity>
> >> >> > <role-source>
> >> >> > <ejb-name>EdiFileEJB</ejb-name>
> >> >> > </role-source>
> >> >> > <cmr-field>
> >> >> > <cmr-field-name>envelopes</cmr-field-name>
> >> >> > <cmr-field-type>java.util.Collection</cmr-field-type>
> >> >> > </cmr-field>
> >> >> > </ejb-relationship-role>
> >> >> >
> >> >> > <ejb-relationship-role>
> >> >> >
> >> >> >
> >> >> <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> >> >> b-relations
> >> >> > hip -role-name>
> >> >> > <multiplicity>many</multiplicity>
> >> >> > <role-source>
> >> >> > <dependent-name>EdiEnvelope</dependent-name>
> >> >> > </role-source>
> >> >> > <cmr-field>
> >> >> > <cmr-field-name>ediFile</cmr-field-name>
> >> >> > </cmr-field>
> >> >> > </ejb-relationship-role>
> >> >> > </ejb-relation>
> >> >> >
> >> >> >
> >> >> >> -----Original Message-----
> >> >> >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> >> >> >> Sent: Friday, November 10, 2000 1:14 PM
> >> >> >> To: Orion-Interest
> >> >> >> Cc: Tim Drury
> >> >> >> Subject: Re: ejb2: EJB->DO, 1 to many problem
> >> >> >>
> >> >> >>
> >> >> >> Hi Tim...
> >> >> >>
> >> >> >> I'll take a stab at trying to help with this. I have done a
> >> >> >> lot of work
> >> >> >> with dependent objects.
> >> >> >>
> >> >> >> First, using Orion 1.4.0 I found that unidirectional
> >> >> >> dependents work as
> >> >> >> they should (when an EB has dependents). If you have an EB
> >> >> >> with dependents
> >> >> >> in a 1-to-1 relationship, Orion will create one table and map
> >> >> >> the fields of
> >> >> >> the dependent into the table for the EB. If you have a 1-ri-n
> >> >> >> relationship,
> >> >> >> Orion will create two tables.
> >> >> >>
> >> >> >> I have found that Orion 1.4.0 does work with dependents in a
> >> >> >> unidirectional
> >> >> >> relationship properly. The error your reporting seems
> >> to indicate a
> >> >> >> descriptor error. Remember that Orion 1.4.0 has a bug in
> >> >> >> which you must
> >> >> >> define the CMR field also as a CMP field (in violation of all
> >> >> >> EJB 2.0 spec
> >> >> >> revisions).
> >> >> >>
> >> >> >> I have also found that Orion 1.4.0 fasils to work
> properly with
> >> >> >> bidirectional dependent relationships. According to Bugzilla,
> >> >> >> this has been
> >> >> >> fixed in Orion 1.4.4 but I have not attempted to
> test this yet.
> >> >> >>
> >> >> >> If you can tell us what version of Orion your using and post
> >> >> >> the relevant
> >> >> >> portion of your descriptor we can probably offer better
> >> assistence.
> >> >> >>
> >> >> >> Jim
> >> >> >>
> >> >> >>
> >> >> >> --On Friday, November 10, 2000 10:42 AM -0500 Tim Drury
> >> >> >> <[EMAIL PROTECTED]> wrote:
> >> >> >>
> >> >> >> >
> >> >> >> > I've gotten EJB->dep obj working for 1-to-1 and
> >> >> >> > I've gotten EJB->EJB 1-to-1 and 1-to-many working.
> >> >> >> > But for the life of me, I cannot get EJB->dep obj
> >> >> >> > working for 1-to-many.
> >> >> >> >
> >> >> >> > The object model is:
> >> >> >> >
> >> >> >> > EdiFile(EJB) ---- 1 to N ----- EdiEnvelope (DO)
> >> >> >> >
> >> >> >> > This is a unidirectional relationship. I think
> >> >> >> > someone has been trying bi-directional with no
> >> >> >> > luck.
> >> >> >> >
> >> >> >> > The problem manifests itself in two ways. First,
> >> >> >> > Orion throws an error when it tries to compiles
> >> >> >> > the stubs/skeletons:
> >> >> >> >
> >> >> >> > class EdiEnvelope_Dependent0 is an abstract class.
> >> >> >> > It can't be instantiated.
> >> >> >> >
> >> >> >> > (well this is obvious; dependent objects are supposed
> >> >> >> > to be abstract).
> >> >> >> >
> >> >> >> > Second, the database table for my EJB doesn't contain
> >> >> >> > _any_ reference to the dependent object. BTW, the
> >> >> >> > table for the dependent object looks fine.
> >> >> >> >
> >> >> >> > Thanks for any help,
> >> >> >> > -tim
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > Here is my dependent object:
> >> >> >> >
> >> >> >> > ------------------------------------------------------
> >> >> >> > package com.tfc.ejb;
> >> >> >> >
> >> >> >> > import java.rmi.RemoteException;
> >> >> >> > import javax.ejb.RemoveException;
> >> >> >> >
> >> >> >> > import java.util.Date;
> >> >> >> > import java.util.Collection;
> >> >> >> > import java.util.Iterator;
> >> >> >> >
> >> >> >> > public abstract class EdiEnvelope implements
> >> java.io.Serializable
> >> >> >> > {
> >> >> >> > public abstract void
> setSenderIdQualifier(String s) throws
> >> >> >> > RemoteException;
> >> >> >> > public abstract void setSenderId(String s) throws
> >> >> >> RemoteException;
> >> >> >> > public abstract void setReceiverIdQualifier(String
> >> s) throws
> >> >> >> > RemoteException;
> >> >> >> > public abstract void setReceiverId(String s) throws
> >> >> >> RemoteException;
> >> >> >> > public abstract void setDate(Date d) throws
> >> RemoteException;
> >> >> >> > public abstract void setVersion(String s) throws
> >> >> RemoteException;
> >> >> >> > public abstract void setControlNumber(long l) throws
> >> >> >> RemoteException;
> >> >> >> > public abstract void setAck(boolean b) throws
> >> RemoteException;
> >> >> >> > public abstract void setNumberOfGroups(int i) throws
> >> >> >> RemoteException;
> >> >> >> > public abstract void setTransactionSets(Collection
> >> c) throws
> >> >> >> > RemoteException;
> >> >> >> > public abstract void setId(String s) throws
> >> RemoteException;
> >> >> >> >
> >> >> >> > public abstract String getSenderIdQualifier() throws
> >> >> >> RemoteException;
> >> >> >> > public abstract String getSenderId() throws
> >> RemoteException;
> >> >> >> > public abstract String getReceiverIdQualifier() throws
> >> >> >> RemoteException;
> >> >> >> > public abstract String getReceiverId() throws
> >> RemoteException;
> >> >> >> > public abstract Date getDate() throws RemoteException;
> >> >> >> > public abstract String getVersion() throws
> RemoteException;
> >> >> >> > public abstract long getControlNumber() throws
> >> >> RemoteException;
> >> >> >> > public abstract boolean getAck() throws RemoteException;
> >> >> >> > public abstract int getNumberOfGroups() throws
> >> >> RemoteException;
> >> >> >> > public abstract Collection getTransactionSets() throws
> >> >> >> RemoteException;
> >> >> >> > public abstract String getId() throws RemoteException;
> >> >> >> >
> >> >> >> > public String ejbCreateEdiEnvelope() throws
> RemoteException
> >> >> >> > {
> >> >> >> > this.setId( (new java.rmi.server.UID()).toString() );
> >> >> >> > return null;
> >> >> >> > }
> >> >> >> > public void ejbPostCreateEdiEnvelope() { }
> >> >> >> > public abstract EdiEnvelope deepCopy();
> >> >> >> >
> >> >> >> > } // end EdiEnvelope
> >> >> >> > ----------------------------------------------------------
> >> >> >> >
> >> >> >> > Here is my EJB:
> >> >> >> >
> >> >> >> > ----------------------------------------------------------
> >> >> >> > package com.tfc.ejb;
> >> >> >> >
> >> >> >> > import javax.ejb.EntityBean;
> >> >> >> > import javax.ejb.CreateException;
> >> >> >> > import javax.ejb.RemoveException;
> >> >> >> > import java.rmi.RemoteException;
> >> >> >> > import javax.ejb.EntityContext;
> >> >> >> >
> >> >> >> > import java.util.Date;
> >> >> >> > import java.util.Iterator;
> >> >> >> > import java.util.Collection;
> >> >> >> >
> >> >> >> > public abstract class EdiFileEJB implements EntityBean
> >> >> >> > {
> >> >> >> > private EntityContext ec;
> >> >> >> >
> >> >> >> > // accessors
> >> >> >> >
> >> >> >> > public void setEntityContext(EntityContext ec) {
> >> >> this.ec = ec; }
> >> >> >> > public void unsetEntityContext() {
> >> ec = null; }
> >> >> >> >
> >> >> >> > public abstract void setFilename(String s);
> >> >> >> > public abstract void setDateDownloaded(Date d);
> >> >> >> > public abstract void setEnvelopes(Collection c);
> >> >> >> > public abstract void setId(String s);
> >> >> >> >
> >> >> >> > public abstract String getFilename();
> >> >> >> > public abstract Date getDateDownloaded();
> >> >> >> > public abstract Collection getEnvelopes();
> >> >> >> > public abstract String getId();
> >> >> >> >
> >> >> >> > public long getNumberOfEnvelopes()
> >> >> >> > {
> >> >> >> > Collection c = this.getEnvelopes();
> >> >> >> > return c.size();
> >> >> >> > }
> >> >> >> > public long getEnvelopeControlNumber(int index) throws
> >> >> >> RemoteException
> >> >> >> > {
> >> >> >> > long controlNumber = 0;
> >> >> >> > Collection c = this.getEnvelopes();
> >> >> >> > try {
> >> >> >> > EdiEnvelope[] ea = (EdiEnvelope[])c.toArray();
> >> >> >> > EdiEnvelope e = ea[index];
> >> >> >> > controlNumber = e.getControlNumber();
> >> >> >> > } catch (Exception ex) {
> >> >> >> > throw new RemoteException("index out of bounds");
> >> >> >> > }
> >> >> >> > return controlNumber;
> >> >> >> > }
> >> >> >> >
> >> >> >> > public void addEnvelope(String senderIdQualifier,
> >> >> >> > String senderId,
> >> >> >> > String receiverIdQualifier,
> >> >> >> > String receiverId,
> >> >> >> > Date date,
> >> >> >> > String version,
> >> >> >> > long controlNumber,
> >> >> >> > boolean ack) throws
> >> RemoteException,
> >> >> >> > CreateException
> >> >> >> > {
> >> >> >> > EdiEnvelope e = this.createEdiEnvelope();
> >> >> >> > e.setSenderIdQualifier(senderIdQualifier);
> >> >> >> > e.setSenderId(senderId);
> >> >> >> > e.setReceiverIdQualifier(receiverIdQualifier);
> >> >> >> > e.setReceiverId(receiverId);
> >> >> >> > e.setDate(date);
> >> >> >> > e.setVersion(version);
> >> >> >> > e.setControlNumber(controlNumber);
> >> >> >> > e.setAck(ack);
> >> >> >> > this.getEnvelopes().add(e);
> >> >> >> > }
> >> >> >> >
> >> >> >> > public abstract EdiEnvelope createEdiEnvelope() throws
> >> >> >> CreateException;
> >> >> >> >
> >> >> >> > public String ejbCreate()
> >> >> >> > {
> >> >> >> > this.setId( (new java.rmi.server.UID()).toString() );
> >> >> >> > return null;
> >> >> >> > }
> >> >> >> >
> >> >> >> > public void ejbPostCreate() { }
> >> >> >> > public void ejbActivate() { }
> >> >> >> > public void ejbPassivate() { }
> >> >> >> > public void ejbLoad() { }
> >> >> >> > public void ejbStore() { }
> >> >> >> > public void ejbRemove() { }
> >> >> >> > } // end EdiFileEJB
> >> >> >> >
> >> >> >> > ---------------------------------------------------
> >> >> >> >
> >> >> >> > and here are the relevent parts of ejb-jar.xml:
> >> >> >> >
> >> >> >> > ----------------------------------------------------
> >> >> >> >
> >> >> >> > ...
> >> >> >> > <entity>
> >> >> >> > <cmp-version>2.x</cmp-version>
> >> >> >> > <description>EDI file</description>
> >> >> >> > <ejb-name>EdiFileEJB</ejb-name>
> >> >> >> > <home>com.tfc.ejb.EdiFileHome</home>
> >> >> >> > <remote>com.tfc.ejb.EdiFile</remote>
> >> >> >> > <ejb-class>com.tfc.ejb.EdiFileEJB</ejb-class>
> >> >> >> > <persistence-type>Container</persistence-type>
> >> >> >> > <reentrant>False</reentrant>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>filename</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>dateDownloaded</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>envelopes</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>id</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <primkey-field>id</primkey-field>
> >> >> >> >
> >> <prim-key-class>java.lang.String</prim-key-class>
> >> >> >> > </entity>
> >> >> >> > ...
> >> >> >> >
> >> >> >> > <dependent>
> >> >> >> > <dependent-name>EdiEnvelope</dependent-name>
> >> >> >> >
> >> >> <dependent-class>com.tfc.ejb.EdiEnvelope</dependent-class>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>senderIdQualifier</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>senderId</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>receiverIdQualifier</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>receiverId</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>date</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>version</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>controlNumber</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>ack</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>transactionSets</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <cmp-field>
> >> >> >> > <field-name>id</field-name>
> >> >> >> > </cmp-field>
> >> >> >> > <prim-key-class>java.lang.String</prim-key-class>
> >> >> >> > <primkey-field>id</primkey-field>
> >> >> >> > </dependent>
> >> >> >> >
> >> >> >> > ...
> >> >> >> >
> >> >> >> > <ejb-relation>
> >> >> >> >
> >> >> <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> >> >> >> > <ejb-relationship-role>
> >> >> >> >
> >> >> >> >
> >> >> >>
> <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> >> >> >> tionship-ro
> >> >> >> > le- name>
> >> >> >> > <multiplicity>one</multiplicity>
> >> >> >> > <role-source>
> >> >> >> > <ejb-name>EdiFileEJB</ejb-name>
> >> >> >> > </role-source>
> >> >> >> > <cmr-field>
> >> >> >> > <cmr-field-name>envelopes</cmr-field-name>
> >> >> >> >
> >> >> <cmr-field-type>java.util.Collection</cmr-field-type>
> >> >> >> > </cmr-field>
> >> >> >> > </ejb-relationship-role>
> >> >> >> > <ejb-relationship-role>
> >> >> >> >
> >> >> >> >
> >> >> >>
> <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> >> >> >> b-relations
> >> >> >> > hip -role-name>
> >> >> >> > <multiplicity>many</multiplicity>
> >> >> >> > <role-source>
> >> >> >> > <dependent-name>EdiEnvelope</dependent-name>
> >> >> >> > </role-source>
> >> >> >> > <cmr-field>
> >> >> >> > <cmr-field-name>ediFile</cmr-field-name>
> >> >> >> > </cmr-field>
> >> >> >> > </ejb-relationship-role>
> >> >> >> > </ejb-relation>
> >> >> >> >
> >> >> >>
> >> >> >>
> >> >> >>
> >> >> >>
> >> >>
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>
> >>
>
>
>
>