Ich lerne gerade die Technik mit Beans und Servlets aus dem Buch JBoss von Heiko W. Rupp. Leider ist sein Besipiel ist dem Buch fehlerhaft oder unvollständig.
Ich habe folgendes Bean geschrieben, genau so wie sie im Buch stehen, aber er meckert immer folgende Zeilen an
das ganze Bean sieht wie folgt aus
Wie bekomme ich nun die unbekannten typen bekannt? Muss ich da noch ne Bibliothek einbinden?
Ich habe folgendes Bean geschrieben, genau so wie sie im Buch stehen, aber er meckert immer folgende Zeilen an
Code:
private EmailLocalHome elh = null;
private AddressLocalHome alh = null;
das ganze Bean sieht wie folgt aus
Code:
package de.bsd.adb.ejb;
import java.util.*;
import javax.ejb.*;
import javax.naming.*;
import de.bsd.adb.beans.AddrBean;
/*
* @ejb.bean name="Facade"
* type="Stateless"
* view-type="both"
* jndi-name="adb/Facade"
* local-jndi-name="adb/FacadeLocal"
*/
public abstract class FacadeSessionBean implements SessionBean {
private EmailLocalHome elh = null;
private AddressLocalHome alh = null;
public void ejbCreate() throws CreateException {
try
{
InitialContext ic = new InitialContext();
Object o = ic.lookup("adb/Adress");
alh = (AdressLocalHome) o;
o = ic.lookup("adb/Email");
elh = (EmailLocalHome) o;
}
catch (NamingException e)
{
throw new CreateException(e.getMessage());
}
}
/*
* @ejb.interface-method
*/
public AddrBean add(AddrBean a) throws CreateException {
if(a==null)
{
throw new CreateException("Keine Adresse übergeben");
}
AdressLocal al;
ArrayList emailLocals = null;
//E-Mails in a anlegen
if(a.getEmail()!=null)
{
emailLocals = new ArrayList();
Iterator it = a.getEmail().iterator();
//E-mails speichern
while(it.hasNext())
{
String em = (String)it.next();
EmailLocal el = elh.create(em);
emailLocals.add(el);
}
}
//Adresse mit E-Mails speichern
al = alh.create(a,emailLocals);
return a;
}
/*
* @ejb.interface-method
*/
public AddrBean[] suche(String name, String vorname) {
AddrBean[] result=null;
try
{
Collection co;
if(vorname==null || vorname.equals(""))
{
co = alh.findByName(name);
}
else
{
co = alh.findByNameAndVorname(name,vorname);
}
int size = co.size();
if(size>0)
{
result = new AddrBean[size];
Iterator it = co.iterator();
int i = 0;
while(it.hasNext())
{
AddressLocal al = (AdressLocal) it.next();
result[i] = new AddrBean();
result[i].setName(al.getName());
result[i].setVorname(al.getVorname());
result[i].setStrasse(al.getStrasse());
result[i].setHausNr(al.getHausNr());
result[i].setPlz(al.getPlz());
result[i].setOrt(al.getOrt());
result[i].setTel(al.getTel());
if(al.getEmails()!=null)
{
//EMails auslesen
ArrayList mails = new ArrayList();
Iterator eit = al.getEmails().iterator();
while(eit.hasNext())
{
EmailLocal el = (EmailLocal)eit.next();
String mail = el.getTheEmail();
mails.add(mail);
}
result[i].setEmail(mails);
}
i++;
}
}
}
catch(FinderException e)
{
result = null;
}
return result;
}
}
Wie bekomme ich nun die unbekannten typen bekannt? Muss ich da noch ne Bibliothek einbinden?