EJB-utviklingsressurser

Dette emnet beskriver ressurser og utviklingverktøy som er vanlig å bruke ved EJB-utvikling.

EJB-moduler

EJB-moduler vises i Prosjektutforsker-visningen i J2EE-perspektivet, og tilsvarer EJB-prosjekter.

En EJB-modul brukes til å samle en eller flere Enterprise-bønner i en enkelt distribuerbar enhet. En EJB-modul er utviklet i et EJB-prosjekt og kan eksporteres som en frittstående EJB-JAR-fil, eller den kan kombineres med andre EJB- eller web-moduler i en Enterprise-applikasjon. En EJB-JAR-fil bruker formatet til en frittstående Java-arkivfil. En EJB-modul inneholder dette:

  • En eller flere Enterprise-bønner og tilhørende .class- og .java-filer.
  • Grafikk og andre filer, avhengig av behovene i Enterprise-bønnen.
  • En distribusjonsdeskriptor. Filtypen for distribusjonsdeskriptoren er XML (Extensible Markup Language). Denne filen deklarerer innholdet i EJB-modulen, definerer strukturen for bønnene i modulen, og beskriver hvordan bønnene skal brukes under kjøring.
  • En MANIFEST.MF-fil i katalogen META-INF. Manifestfilen kan inneholde en klassebaneoppføring med referanser til andre JAR-filer eller EJB-moduler i en J2EE Enterprise-applikasjon. Den definerer modulens eksterne avhengigheter.

En EJB-modul installeres og kjøres i en EJB-container.

En Enterprise-bønne er en Java-komponent som kan kombineres med andre ressurser for å opprette distribuerte klient/server-applikasjoner.

Merk: Hvis du bestemmer deg for å opprette en JAR-fil for EJB-klienten for EJB-modulen, vil klientgrensesnittklassene for Enterprise-bønnene ikke inkluderes i EJB-JAR-filen, men derimot i JAR-filen for EJB-klienten.
EJB-prosjekter

I arbeidsbenken oppretter og vedlikeholder du ressurser for Enterprise-applikasjoner i prosjekter. Et EJB-prosjekt er en logisk modul som lar deg ordne Enterprise-bønnene.

Arbeidsbenken støtter prosjekter for EJB 1.1, EJB 2.0 og EJB 2.1. J2EE-spesifikasjonsnivået for et EAR-prosjekt må settes til J2EE 1.3 eller høyere for prosjekter for EJB 2.0 og J2EE 1.4 for prosjekter for EJB 2.1. I et prosjekt for EJB 1.1 kan du bare opprette EJB 1.1-bønner.

Et EJB-prosjekt er et spesialisert Java-prosjekt. På samme måte som Java-prosjekter, må EJB-prosjekter ha en eller flere kildemapper som inneholder kilde- og utdatafilene for prosjektet. Standard er at kildemappen heter ejbModule, men du kan endre navnet når du oppretter prosjektet eller nye kildemapper. Når du publiserer eller distribuerer prosjektet, genereres innholdet i mappen eller mappene.

Du kan ikke bruke EJB-prosjektet som kildemappe, fordi dette vil forårsake feil. Selv om du har mer enn en kildemappe i prosjektet, kan bare en av kildemappene inneholde mappen META-INF med filen MANIFEST.MF og distribusjonsdeskriptorfilene.

Merk: Hvis du bestemmer deg for å opprette en JAR-fil for EJB-klienten for EJB-modulen, vil klientgrensesnittklassene for Enterprise-bønnene ikke inkluderes i EJB-prosjektet, men i det separate JAR-prosjektet for EJB-klienten. JAR-prosjekter for EJB-klienten vises i Prosjektutforsker som Java-prosjekter under noden Andre prosjekter.
EJB-klientens prosjekter

EJB-verktøy støtter opprettelse av JAR-prosjekter for EJB-klient for EJB-moduler. Et JAR-prosjekt for en EJB-klient inneholder alle grensesnittklassene som et klientprogram trenger for å kunne bruke klientvisninger av Enterprise-bønnene som ligger i EJB-prosjektet. Når du oppretter et EJB-klientprosjekt for et EJB-prosjekt, blir det opprettet et nytt Java-prosjekt som legges til i arbeidsområdet. EJB-klientprosjektet legges til som en JAR-fil for prosjektfunksjon i hver modul som EJB-prosjektet tilhører.

Standard er at når du bruker veiviseren til å opprette et EJB-prosjekt, blir det også opprettet et JAR-prosjekt for EJB-klienten. Du kan imidlertid oppheve valget av dette alternativet i veiviseren.

Tips: Du kan også legge til EJB-klientprosjektet i en annen Enterprise-applikasjon som ikke inkluderer EJB-prosjektet som en modul. Dette sikrer at JAR-filen for EJB-klienten blir eksportert og pakket med EAR-filen når applikasjonen eksporteres.
Enterprise-bønner

En Enterprise-bønne er en Java-komponent som kan kombineres med andre ressurser for å opprette distribuerte klient/server-applikasjoner.

Det finnes tre typer Enterprise-bønner: entitetsbønner, sesjonsbønner og meldingsdrevne bønner. Alle bønnetypene brukes vanligvis sammen i en Enterprise-applikasjon.

Entitetsbønner
Entitetsbønner lagrer permanente data. CMP-entitetsbønner (Container-Managed Persistence) krever databasetilkobling. CMP-entitetsbønner styrer permanente data på den måten som er definert i bønnekoden. Dette kan for eksempel være skriving til databaser eller XML-filer.
Sesjonsbønner
Sesjonsbønner krever ikke databasetilgang, selv om de indirekte får dette (ved behov) ved å få tilgang til entitetsbønner. Sesjonsbønner kan også få direkte tilgang til databaser (og andre ressurser) gjennom bruk av ressursreferanser.
Meldingsdrevne bønner
Meldingsdrevne bønner er en bestemt type Enterprise-bønne som fungerer som meldingsbrukere i JMS-meldingssystemet. På samme måte som med standard JMS-meldingsbrukere, utfører meldingsdrevne bønner forretningslogikk basert på meldingsinnhold. På mange måter speiler den dynamiske opprettelsen og tildelingen av meldingsdrevne bønneforekomster funksjonaliteten til stateless Enterprise-sesjonsbønner. Meldingsdrevne bønner er imidlertid annerledes enn stateless Enterprise-sesjonsbønner (og andre typer Enterprise-bønner) på flere måter:
  • Meldingsdrevne bønner behandler flere JMS-meldinger asynkront i stedet for å behandle en serialisert sekvens med metodekall.
  • Meldingsdrevne bønner har ikke internt eller eksternt grensesnitt og det er derfor ikke mulig for interne eller eksterne klienter å få direkte tilgang.
Distribusjonsdeskriptorer

En distribusjonsdeskriptor inneholder konfigurasjonsdata som kjøretidsmiljøet bruker for en applikasjon. En distribusjonsdeskriptor kan inneholde informasjon om følgende:

  • Strukturen og innholdet (for eksempel Enterprise-bønner) i applikasjonen.
  • Referanser til interne og eksterne avhengigheter. En Enterprise-bønne i en EJB-modul kan for eksempel kreve en annen Enterprise-bønne som ikke ligger i samme modul.
  • Referanser til objekter for ressurs-factory, for eksempel URLer eller JDBC-datakilder.
  • Sikkerhetsroller som containeren bruker ved implementering av den nødvendige tilgangskontrollen for applikasjonen.
  • Transaksjonsinformasjon om hvordan (og om) containeren skal håndtere transaksjoner for applikasjonen.

Distribusjonsdeskriptorer er XML-filer som er pakket med applikasjonsfilene i en Java-arkivfil. En EJB-distribusjonsdeskriptor kalles ejb-jar.xml og ligger i mappen META-INF i et EJB-prosjekt. En J2EE-applikasjon inneholder en distribusjonsdeskriptorfil på applikasjonsnivå som styrer applikasjonen under ett. Den inneholder også flere distribusjonsdeskriptorer på komponentnivå, en for hver modul i applikasjonen.