EJB-udviklingsressourcer

I dette emne beskrives ressourcer og udviklingsværktøjer, der som regel bruges til EJB-udvikling.

EJB-moduler

EJB-moduler vises i oversigten Project Explorer i perspektivet J2EE og svarer til EJB-projekter.

Et EJB-modul bruges til at oversætte en eller flere Enterprise-beans til en enkelt enhed, der kan distribueres. Et EJB-modul udvikles i et EJB-projekt og kan enten eksporteres som en enkeltstående EJB JAR-fil eller kombineres med andre EJB- eller webmoduler i et Enterprise Application-program. En EJB JAR-fil bruger samme format som en Java-standardarkivfil. Et EJB-modul indeholder følgende:

  • En eller flere Enterprise-beans og deres tilhørende .class- og .java-filer.
  • Grafikfiler og andre filer, afhængigt af hvad der kræves til de pågældende Enterprise-beans.
  • En distributionsdeskriptor. Distributionsdeskriptorens filtype er XML (Extensible Markup Language). Filen erklærer indholdet af EJB-modulet, definerer strukturen på de beans, der findes i modulet, og har en beskrivelse af, hvordan disse beans skal bruges på udførelsestidspunktet.
  • En fil ved navn MANIFEST.MF i biblioteket META-INF. Manifestfilen kan indeholde en classpath-indgang med referencer til andre JAR-filer eller EJB-moduler i et J2EE Enterprise Application-program. Den definerer modulets eksterne afhængigheder.

Et EJB-modul installeres og udføres i et EJB-opbevaringssted.

En Enterprise-bean er en Java-komponent, der kan kombineres med andre ressourcer, så der oprettes distribuerede client/server-programmer.

Bemærk: Hvis du vælger at oprette en EJB klient-JAR-fil til EJB-modulet, vil klientgrænsefladeklasserne til Enterprise-beans ikke være indeholdt i EJB JAR-filen, men i EJB klient-JAR-filen.
EJB-projekter

På arbejdsbænken kan du oprette og vedligeholde ressourcer til Enterprise Application-programmer i projekter. Et EJB-projekt er et logisk modul, du kan bruge til at organisere dine Enterprise-beans.

Arbejdsbænken understøtter projekter med EJB-version 1.1, 2.0 og 2.1. J2EE-specifikationsniveauet for et indeholdende EAR-projekt skal angives til J2EE 1.3 eller nyere for EJB 2.0-projekter og til J2EE 1.4 for EJB 2.1-projekter. I et EJB 1.1-projekt kan du kun oprette EJB 1.1-beans.

Et EJB-projekt er et specialiseret Java-projekt. På samme måde som et Java-projekt skal et EJB-projekt have en eller flere kildefoldere, der skal indeholde projektets kildefiler og outputfiler. Kildefolderen tildeles som standard navnet ejbModule, men du kan ændre navnet, når du opretter projektet eller nye kildefoldere. Når du publicerer eller distribuerer projektet, kombineres indholdet af folderen eller folderne.

Du kan ikke bruge EJB-projektet som kildefolder. Det vil medføre fejl. Selvom du kan have mere end én kildefolder i projektet, kan kun en af kildefolderne indeholde folderen META-INF, hvor filen MANIFEST.MF og distributionsdeskriptorfilen er placeret.

Bemærk: Hvis du vælger at oprette en EJB klient-JAR-fil til EJB-modulet, vil klientgrænsefladeklasserne til Enterprise-beans ikke være inkluderet i EJB-projektet, men i et separat EJB klient-JAR-projekt. EJB klient-JAR-projekter vises i Project Explorer som Java-projekter under noden Andre projekter.
EJB-klientprojekter

EJB-værktøjerne gør det muligt at oprette EJB klient-JAR-projekter til EJB-moduler. Et EJB klient-JAR-projekt indeholder alle de grænsefladeklasser, som et klientprogram kræver for at kunne bruge klientoversigterne for de Enterprise-beans, der er indeholdt i EJB-projektet. Nr du opretter et EJB-klientprojekt til et EJB-projekt, oprettes et nyt Java-projekt og tilføjes til arbejdsområdet. EJB-klientprojektet tilføjes som en funktions-JAR-fil til hvert modul, som EJB-projektet hører til.

Når du bruger guiden til at oprette et EJB-projekt, oprettes som standard også et EJB klient-JAR-projekt. Du kan imidlertid deaktivere denne indstilling i guiden.

Tip: Du kan også tilføje EJB-klientprojektet til et andet Enterprise Application-program, som ikke inkluderer EJB-projektet som et modul. Det sikrer, at EJB klient-JAR-filen eksporteres og pakkes med EAR-filen, når programmet eksporteres.
Enterprise-beans

En Enterprise-bean er en Java-komponent, der kan kombineres med andre ressourcer, så der oprettes distribuerede client/server-programmer.

Der findes tre typer Enterprise-beans: entitets-beans, sessions-beans og meddelelsesstyrede beans. Alle typer beans anvendes typisk sammen i et Enterprise Application-program.

Entitets-beans
Entitets-beans lagrer permanente data. Entitets-beans af typen CMP (Container-Managed Persistence) kræver en databaseforbindelse. Entitets-beans af typen BMP (Bean-Managed Persistence) administrerer permanente data på den måde, der er defineret i bean-koden. Det kan f.eks. inkludere skrivning til databaser eller XML-filer.
Session-beans
Sessions-beans kræver ikke databaseadgang, selvom de indirekte kan opnå adgang via entitets-beans. Sessions-beans kan også opnå direkte adgang til databaser (og andre ressourcer) via brug af ressourcereferencer.
Meddelelsesstyrede beans
Meddelelsesstyrede beans er en særlig type Enterprise-beans, der fungerer som meddelelsesforbrugere i JMS-meddelelsessystemet. Meddelelsesstyrede beans udfører forretningslogik baseret på meddelelsesindholdet på samme måde som JMS-standardmeddelelsesforbrugere. Den dynamiske oprettelse og tildeling af meddelelsesstyrede beans er på mange måder magen til funktionsmåden for tilstandsløse Enterprise sessions-beans. Der er dog nogle forskelle på meddelelsesstyrede beans og tilstandsløse Enterprise sessions-beans (og andre typer Enterprise-beans):
  • Fremfor at behandle en sekvens af metodekald serielt behandler meddelelsesstyrede beans flere JMS-meddelelser asynkront.
  • Meddelelsesstyrede beans har ingen privat eller ekstern grænseflade og kan derfor ikke benyttes direkte af interne eller eksterne klienter.
Distributionsdeskriptorer

En distributionsdeskriptor indeholder konfigurationsdata, som runtime-miljøet bruger til et program. En distributionsdeskriptor kan inkludere oplysninger om følgende:

  • Programmets struktur og indhold (f.eks. Enterprise-beans).
  • Referencer til interne og eksterne afhængigheder. En Enterprise-bean i et EJB-modul kan f.eks. have brug for en anden Enterprise-bean, som ikke er pakket i samme modul.
  • Referencer til ressourcefabrikobjekter, f.eks. URL'er eller JDBC-datakilder.
  • Sikkerhedsroller, som bruges af opbevaringsstedet til at implementere den påkrævede adgangskontrol for programmet.
  • Transaktionsmæssige oplysninger om, hvordan og hvorvidt opbevaringsstedet skal administrere transaktioner for programmet.

Distributionsdeskriptorer er XML-filer, der er pakket sammen med programmets filer i en Java-arkivfil. En EJB-distributionsdeskriptor kaldes ejb-jar.xml og er placeret i EJB-projektets folder ved navn META-INF. Et J2EE-program indeholder én distributionsdeskriptorfil på programniveau, som styrer programmet som helhed. Det indeholder også flere distributionsdeskriptorer på komponentniveau, en for hvert modul i programmet.