/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
EJB Relationer
Fra : The_MaXx


Dato : 26-05-02 20:25

Hej gruppe...
Jeg er rimelig grøn med hensyn til EJB'er, men skulle gerne have dette til
at virke.
Jeg har et fragtbrev som har 2 relationer til en anden EJB (Kunde). De to
relationer er afsender og modtager. Jeg er ikke sikker på hvordan dette
laves. Jeg har lige nu prøvet at lave det sådan at jeg gemmer en modtager_id
som et persistent felt og så henter objectet hvis det skal bruges... dette
gør jeg ved at oprette et object af typen TelefonNummer som er Kunde
klassens primære nøgle.
Jeg bruger JBoss 2.4.4 og får når jeg deployer det disse fejl:
[INFO,ContainerFactory] Deploying Kunde
[INFO,ContainerFactory] Deploying Fragtbrev
[WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
[WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
[WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
[WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method

Her kan i se FragtbrevBean koden:
--------------------------------------------------
public class FragtbrevBean implements javax.ejb.EntityBean
{
private int id;
private Kunde afsender, modtager;
private int afsender_id, modtager_id;
private Date dato;
private int vaegt;
private float volumen, pris;

public EntityContext ejbContext;
public transient Context jndiContext;

public FragtbrevsNummer ejbCreate(int id)
{
this.id = id;
return null;
}

public Kunde getAfsender() throws RemoteException
{
try
{
if (afsender != null)
return afsender;
else
{
KundeHome home = (KundeHome) getHome("KundeHome");
afsender = home.findByPrimaryKey(new TelefonNummer(afsender_id));
return afsender;
}
}
catch (FinderException fe)
{
throw new RemoteException("Invalid Customer", fe);
}
}
public void setAfsender(Kunde kunde) throws RemoteException
{
afsender_id = ((TelefonNummer)kunde.getPrimaryKey()).id;
afsender = kunde;
}
public Kunde getModtager() throws RemoteException
{
try
{
if (modtager != null)
return modtager;
else
{
KundeHome home = (KundeHome) getHome("KundeHome");
modtager = home.findByPrimaryKey(new TelefonNummer(afsender_id));
return modtager;
}
}
catch (FinderException fe)
{
throw new RemoteException("Invalid Customer", fe);
}
}
public void setModtager(Kunde kunde) throws RemoteException
{
modtager_id = ((TelefonNummer)kunde.getPrimaryKey()).id;
modtager = kunde;
}
public Date getDato()
{
return dato;
}
public void setDato(Date d)
{
dato = d;
}
public int getVaegt()
{
return vaegt;
}
public void setVaegt(int v)
{
vaegt = v;
}
public float getVolumen()
{
return volumen;
}
public void setVolument(float vol)
{
volumen = vol;
}
public float getPris()
{
return pris;
}
public void setPris(float kr)
{
pris = kr;
}

public void ejbPostCreate(int id) { }

public void setEntityContext(EntityContext ctx) {}

public void unsetEntityContext() {}

public void ejbActivate() {}

public void ejbPassivate() {}

public void ejbLoad() {}

public void ejbStore() {}

public void ejbRemove() {}

protected Object getHome(String name) throws RemoteException
{
try
{
String jndiName = ejbContext.getEnvironment().getProperty(name);
return getJndiContext().lookup(jndiName);
}
catch (javax.naming.NamingException ne)
{
throw new RemoteException("Could not lookup ("+name+")",ne);
}
}

private javax.naming.Context getJndiContext() throws
javax.naming.NamingException
{
if (jndiContext != null)
return jndiContext;

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL, "localhost");
env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" );
return new javax.naming.InitialContext(env);
}
}
---------------------------------------------------
Håber på hjælp hurtigt.
The_MaXx



 
 
Casper Madsen (28-05-2002)
Kommentar
Fra : Casper Madsen


Dato : 28-05-02 21:25

Nu kan jeg ikke liiiige se hvilke felter den brokker sig over, men generelt
skal du være MEGET påpasselig med navngivningen af get og set metoder, jeg
kan foreksempel se at du har kaldet din ene metode for : setVolument()
istedet for setVolumen() etc.

Så tjek liiige koden igen for tyrk fejl!

Håber det hjælper!

MVH Casper

"The_MaXx" <the_maxx@mail.dk> wrote in message
news:3cf13675$0$70422$edfadb0f@dspool01.news.tele.dk...
> Hej gruppe...
> Jeg er rimelig grøn med hensyn til EJB'er, men skulle gerne have dette til
> at virke.
> Jeg har et fragtbrev som har 2 relationer til en anden EJB (Kunde). De to
> relationer er afsender og modtager. Jeg er ikke sikker på hvordan dette
> laves. Jeg har lige nu prøvet at lave det sådan at jeg gemmer en
modtager_id
> som et persistent felt og så henter objectet hvis det skal bruges... dette
> gør jeg ved at oprette et object af typen TelefonNummer som er Kunde
> klassens primære nøgle.
> Jeg bruger JBoss 2.4.4 og får når jeg deployer det disse fejl:
> [INFO,ContainerFactory] Deploying Kunde
> [INFO,ContainerFactory] Deploying Fragtbrev
> [WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
> [WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
> [WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
> [WARN,CMPFieldMetaData] ERROR : Nested Field does not have a get method
>
> Her kan i se FragtbrevBean koden:
> --------------------------------------------------
> public class FragtbrevBean implements javax.ejb.EntityBean
> {
> private int id;
> private Kunde afsender, modtager;
> private int afsender_id, modtager_id;
> private Date dato;
> private int vaegt;
> private float volumen, pris;
>
> public EntityContext ejbContext;
> public transient Context jndiContext;
>
> public FragtbrevsNummer ejbCreate(int id)
> {
> this.id = id;
> return null;
> }
>
> public Kunde getAfsender() throws RemoteException
> {
> try
> {
> if (afsender != null)
> return afsender;
> else
> {
> KundeHome home = (KundeHome) getHome("KundeHome");
> afsender = home.findByPrimaryKey(new TelefonNummer(afsender_id));
> return afsender;
> }
> }
> catch (FinderException fe)
> {
> throw new RemoteException("Invalid Customer", fe);
> }
> }
> public void setAfsender(Kunde kunde) throws RemoteException
> {
> afsender_id = ((TelefonNummer)kunde.getPrimaryKey()).id;
> afsender = kunde;
> }
> public Kunde getModtager() throws RemoteException
> {
> try
> {
> if (modtager != null)
> return modtager;
> else
> {
> KundeHome home = (KundeHome) getHome("KundeHome");
> modtager = home.findByPrimaryKey(new TelefonNummer(afsender_id));
> return modtager;
> }
> }
> catch (FinderException fe)
> {
> throw new RemoteException("Invalid Customer", fe);
> }
> }
> public void setModtager(Kunde kunde) throws RemoteException
> {
> modtager_id = ((TelefonNummer)kunde.getPrimaryKey()).id;
> modtager = kunde;
> }
> public Date getDato()
> {
> return dato;
> }
> public void setDato(Date d)
> {
> dato = d;
> }
> public int getVaegt()
> {
> return vaegt;
> }
> public void setVaegt(int v)
> {
> vaegt = v;
> }
> public float getVolumen()
> {
> return volumen;
> }
> public void setVolument(float vol)
> {
> volumen = vol;
> }
> public float getPris()
> {
> return pris;
> }
> public void setPris(float kr)
> {
> pris = kr;
> }
>
> public void ejbPostCreate(int id) { }
>
> public void setEntityContext(EntityContext ctx) {}
>
> public void unsetEntityContext() {}
>
> public void ejbActivate() {}
>
> public void ejbPassivate() {}
>
> public void ejbLoad() {}
>
> public void ejbStore() {}
>
> public void ejbRemove() {}
>
> protected Object getHome(String name) throws RemoteException
> {
> try
> {
> String jndiName = ejbContext.getEnvironment().getProperty(name);
> return getJndiContext().lookup(jndiName);
> }
> catch (javax.naming.NamingException ne)
> {
> throw new RemoteException("Could not lookup ("+name+")",ne);
> }
> }
>
> private javax.naming.Context getJndiContext() throws
> javax.naming.NamingException
> {
> if (jndiContext != null)
> return jndiContext;
>
> Hashtable env = new Hashtable();
> env.put(Context.INITIAL_CONTEXT_FACTORY,
> "org.jnp.interfaces.NamingContextFactory");
> env.put(Context.PROVIDER_URL, "localhost");
> env.put(Context.URL_PKG_PREFIXES,
"org.jboss.naming:org.jnp.interfaces" );
> return new javax.naming.InitialContext(env);
> }
> }
> ---------------------------------------------------
> Håber på hjælp hurtigt.
> The_MaXx
>
>



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste