found the problem. AAAAAAAAARRRRRRRRGGGGGGG! I had a set/get for a field of the dependent object that I forgot to map in the <dependent> deployment descriptor. Even worse, I can't blame cryptic exceptions. Orion properly spit out the exception telling me that I couldn't declare the get/set abstract since I was missing the field in the descriptor. Thanks for your help Jim. -tim > -----Original Message----- > From: Tim Drury [mailto:[EMAIL PROTECTED]] > Sent: Friday, November 10, 2000 4:41 PM > To: Orion-Interest > Subject: RE: ejb2: EJB->DO, 1 to many problem > > > > Still not working but here is some more data. For the > hell of it, I added another field to my EJB: > > public abstract void setFoo(Collection c); > public abstract Collection getFoo(); > > and added <cmp-field><field-name>foo</..></..> > > Doing this created a field in the EJB table with type > "oid" (its a PostgreSQL thing), but it didn't create > a Foo table because I didn't define a Foo dependent > object. I renamed my EdiEnvelope DO to Foo so it > would get mapped to this field. When I deployed, > the Foo field disappeared from the EJB table and the > EdiEnvelope field (which doesn't have a DO object > relationship anymore) appeared. Clearing the > <dependant> and <relationship> field are being > recognized but why is the DO field not appearing > in the EJB table? > > What did your database tables look like to handle the > EJB (1) --> (N) dependent object? > > -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> > > >> >> >> > > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> > > >> > > >> > > >> > > > > > > > > >