Achtung: Die überarbeitete 2. Auflage zu Enterprise JavaBeans 3.0 ist erschienen.
Nähere Informationen unter www.ejbbuch.de


  Elsevier VerlagSpektrum Akademischer Verlag mgm technology partners GmbH (Firma der Autoren)  

Informationen zum Buch "Enterprise JavaBeans 2.0/2.1"
 
Hier sind die Korrekturen zu fehlerhaften Texten im Buch aufgeführt

Cover des Buches "Enterprise JavaBeans 2..0/2.1"

Allgemeines
URLs:
Leider besitzen einige der im Buch abgedruckten WWW-Links ein "%"-Symbol, das nicht hineingehört. Man kann sie daran erkennen, dass nach "%" keine Zahl folgt. Beispiel: "http://xxx.yy%y.com" muss "http://xxx.yyy.com" heißen.
Auf der Links-Seite finden Sie alle Links aus dem Buch in der korrekten Fassung.

 
Kapitel 2: Konzepte und Architektur von EJB
Seite 51:
In der dritten Zeile von unten ist " Umgebungseintrag 'Vari1' " falsch.

Korrekt heißt es:
... Umgebungseintrag "MwSt" ...

 
Kapitel 3: Die erste EJB-Komponente
Seite 77, Listing 3.7:
Die Zeile (ungefähr in der Mitte des Listings)
Object ref = jndiContext.lookup("HelloWorldBeispiel");
ist fehlerhaft: Es muss nach dem JNDI-Namen "HelloWorld" gesucht werden. (Denn der Kapiteltext bezieht sich auf diesen JNDI-Namen -- grundsätzlich kann natürlich ein beliebiger JNDI-Name gewählt werden.)

Korrekt heißt es:
Object ref = jndiContext.lookup("HelloWorld");

 
Seite 79, Code-Auszug oben auf der Seite:
Die Zeile
<jndi-name>HelloWorldBeispiel</jndi-name>
ist fehlerhaft: Entsprechend zu oben (Listing 3.7) muss der JNDI-Name "HelloWorld" lauten.

Korrekt heißt es:
<weblogic-ejb-jar>
   <weblogic-enterprise-bean>
      <ejb-name>HelloWorld</ejb-name>
      <jndi-name>HelloWorld</jndi-name>
   </weblogic-enterprise-bean>
</weblogic-ejb-jar>

 
Kapitel 6: Container-Managed Persistence
Seite 185 und 189 (Bild 6.5 und Bild 6.6):
In den Bildern besitzt die Tabelle "Kunde" jeweils eine Spalte "Name" (die hier keine weitere Bedeutung hat!). Dies ist zwar nicht grundsätzlich falsch, aber verwirrend, da sie im Text zuvor dem Entity-Bean "Adresse" zugeordnet wurde.

Korrekt ist:
Im Bild 6.5 (Seite 185) ist die Spalte "Name" der Tabelle "Adresse" zugeordnet und nicht der Tabelle "Kunde".
Im Bild 6.6 (Seite 189) hat die Tabelle "Kunde" keine Spalte "Name".
Die korrigierten Bilder als GIFs: Bild 6.5 (Seite 185) und Bild 6.6 (Seite 187).

 
Seite 223 (Tabelle 6.3):
Die Tabelle zeigt unter anderem Beispiele zu den bedingten Ausdrücken, die in der WHERE-Klausel eines EJB-QL-Ausdrucks stehen dürfen. Im ersten Beispiel (zu den Operatoren) hat sich ein Fehler eingeschlichen:

SELECT OBJECT(p) FROM Produkt p
WHERE (p.typ = 'cpu') AND (p.preis - p.kosten > 0)

ist fehlerhaft.

Korrekt heißt es:
SELECT OBJECT(p) FROM Produkt p
WHERE (p.typ = 'cpu') AND (p.preis > p.kosten)


Der Fehler ist, dass in einem Vergleich auf der linken Seite nur ein CMP-Attribut stehen darf (genauer: einzelwertiger Pfadausdruck), etwa "p.preis". Bei Vergleichen auf Zahlen (wie hier) könnte zudem auch ein Funktionsaufruf (etwa LENGTH()) auf der linken Seite stehen. Ungültig für die linke Seite ist also "p.preis - p.kosten", aber etwa auch "p.preis * 1.15".
Auf der rechten Seite des Vergleichs darf dagegen ein Ausdruck folgen, der etwa bei Zahlenvergleichen durchaus ein arithmetischer Ausdruck mit CMP-Attributen sein kann, etwa "p.kosten" oder "- p.kosten * 100.5".

Im Buch nicht explizit ausgeführt ist die daraus folgende überraschende Tatsache, dass Eingabeparameter (etwa "?1") nur auf der rechten Seite von Vergleichen erlaubt sind: "p.preis = ?1" ist gültig, "?1 = p.preis" dagegen nicht.

Die dargestellten Forderungen sind in der EJB 2.0-Spezifikation im EJB-QL-Kapitel auf den Seiten 239/240 in Form einer Grammatik in BNF-Notation festgelegt.

 
Kapitel 14: Neuerungen von EJB 2.1
Seite 403 und 404:
Dem Buch lag der "Public Draft" von EJB 2.1 vor. In der nun verabschiedeten Fassung steht der Timer-Dienst nun auch für Message-Driven Beans zur Verfügung. (Insgesamt also für Stateless Session Beans, Entity Beans und Message-Driven Beans.)

Eine Folge ist, dass in EJB 2.1 der Konversationszustand eines Stateful Session Beans eine Objekt-Referenz auf ein Timer-Objekt besitzen kann, die vom Container automatisch verwaltet wird (ergänzend zu den Objekt-Referenzen, die auf Seite 98 im Buch aufgeführt sind).

 
Index
Seite 452, 453 und 454:
Die Seitenreferenzen sind um jeweils drei bis vier Seiten nach vorne verschoben: Wenn zum Beispiel Seite 100 bei einem Begriff steht, ist der Begriffskontext eigentlich ab Seite 96 zu finden.

Den korrigierten Index können Sie hier als PDF-Datei herunterladen.

Allgemeiner Hinweis zum Index: die Seitenreferenzen beziehen sich nicht unbedingt auf genau die Seiten, auf denen sich die Begriffe befinden. Sie verweisen auf den Anfang des jeweiligen Begriffskontextes; dieser kann durchaus auch eine oder zwei Seiten vorher sein.

 

Letzte Änderung: 18.05.2007 - Martin Backschat