Indholdsfortegnelse:
- Definere en webservice
- Formålet med din webtjeneste er at give eksterne kunder adgang til de tjenester, du leverer. Disse tjenester kaldes
- I dette afsnit opbygger du en synkron webtjeneste ved hjælp af en almindelig Java-klasse og derefter bruger en statsløs session EJB. For det første skal du skrive backend-komponenten. Dette vil enten være en Java-klasse, en statsløs EJB eller en JMS-metode forbruger.
Video: 4. Opret ny Padlet 2025
En webservice er en fjernprocedure tilgængelig for klienter via TCP / IP, typisk ved hjælp af HTTP eller SMTP som transport og XML til kodning. Webtjenesten er beskrevet ved hjælp af standard XML-notation kaldet en servicebeskrivelse. En webtjeneste opfylder en enkelt opgave eller et sæt opgaver.
Alle oplysninger om webtjenesten er skjult for brugeren, og tjenesten er både hardware og software uafhængig. Dette opfordrer softwareudviklere til at opbygge applikationer, der består af små, individuelle tjenester, som derefter kan bruges alene eller i grupper til at udføre endnu mere komplekse opgaver.
Du kan oprette en webservice på to måder: manuelt via oprettelsen af Java-kilde og konfigurationsfiler eller ved brug af et GUI-system kaldet WebLogic Workshop. I denne artikel opretter du en webservice manuelt.
Definere en webservice
Før du opretter din webservice, skal du definere, hvad den vil gøre. Dette giver dig mulighed for korrekt at konstruere den grænseflade, som andre applikationer skal overholde, hvis de vil kommunikere med din webservice.
Den mest grundlæggende designbeslutning er hvilken af de to generelle typer af webtjenester du vil oprette:
- Synkron service
- Asynkron tjeneste
A synkron webservice < som er standard, begynder, når webtjenesten modtager en besked. Denne webtjeneste reagerer straks. Synkron webtjenester er mest nyttige, når klientprogrammet kræver de data, der returneres fra anmodningen omgående. Et eksempel på denne type data er det nuværende aktiekurs for et bestemt firma.
asynkron webtjeneste er asynkron, så meddelelser kan udveksles frit mellem klienten og webtjenesten. En meddelelse fra den ene side forpligter ikke den anden til at sende en tilsvarende meddelelse. Når en klient sender en besked til en asynkron webservice, venter klienten ikke på en besked tilbage fra webtjenesten. Webtjenesten kan sende en besked tilbage til klienten på et senere tidspunkt, men intet binder i sig selv denne besked til den oprindelige meddelelse, som klienten sendte. Asynkrone webtjenester er et godt valg, når du sender oplysninger, der ikke kræver et svar. Du kan f.eks. Sende en besked til flere af dine servere, og give dem en ny lykønskelsesbesked, der skal vises til brugere.
Valg og opbygning af backend-komponent
Formålet med din webtjeneste er at give eksterne kunder adgang til de tjenester, du leverer. Disse tjenester kaldes
backend-komponenten, i form af Java-kode.Du kan opbygge din backend-komponent som et af følgende: En metode til statsløs session EJB
- En metode til en Java-klasse
- En JMS-metode forbruger
- WebLogic kan gøre disse produkter tilgængelige som en webservice. Dette gør det nemt at pakke eksisterende Java-kode som en webservice. Hvis du allerede har oprettet statsløse session EJB'er, kan du pakke dem som en webservice. Eller hvis din kode findes i regelmæssige Java-klasser, kan du give adgang til din klasse som en webservice. Du kan også bruge JMS messaging som en backend service til din web service.
Opbygning af en synkron webtjeneste
I dette afsnit opbygger du en synkron webtjeneste ved hjælp af en almindelig Java-klasse og derefter bruger en statsløs session EJB. For det første skal du skrive backend-komponenten. Dette vil enten være en Java-klasse, en statsløs EJB eller en JMS-metode forbruger.
Arbejde med en Java class backend-komponent
Du skal følge et par regler, når du implementerer en webservicevirksomhed ved hjælp af en Java-klasse:
Start ikke tråde. Denne regel gælder for al Java-kode, der kører på WebLogic Server.
- Definer en standard ingen argumentkonstruktor.
- Definer som offentligt metoderne til Java-klassen, der vil blive eksponeret som webservicevirksomhed.
- Du skal skrive trådbeskyttet Java-kode, fordi WebLogic Server kun opretholder en enkelt forekomst af en Java-klasse, der implementerer en webtjenesteoperation, og hver påkaldelse af webtjenesten anvender samme eksempel.
For et eksempel på implementering af en WebLogic-webtjenesteoperation med en Java-klasse, skal du gå til følgende mappe:
WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
hvor
WL_HOME henviser til hovedmappen i din WebLogic Server-installation. På et Windows-system er denne mappe normalt C: beaweblogic81. Liste 1 viser en Java-klasse, som du kan bruge som backend-komponent. Denne Java-klasse indeholder en enkelt metode, der hedder sampleMethod, der accepterer en int og returnerer en streng.
Listing 1: Java Class Backend Component
pakke com. dummies. EJB;
offentlig klasse SampleBackendComponent
{
public String sampleMethod (int num)
{
switch (num)
{
sag 1: returner "One";
sag 2: vend tilbage "to";
sag 3: vend tilbage "tre";
sag 4: vend tilbage "fire";
sag 5: vend tilbage "fem";
sag 6: vend tilbage "seks";
sag 7: returner "syv";
sag 8: vend tilbage "otte";
sag 9: returner "ni";
sag 10: returnere "ti";
standard: returner "noget nummer";
}
}
}
Arbejde med en statsløs session EJB backend-komponent
Du kan også vælge at opbygge din backend-komponent som en statsløs session EJB. Skrivning af Java-kode til en statsløs session EJB for en webservice er ikke anderledes end at skrive en selvstændig EJB.
I web-tjenesterne. xml-implementeringsbeskrivelse, kan du angive, at en webtjenesteoperation er en måde, hvilket betyder, at klientprogrammet, der påberåber webtjenesten, ikke venter på et svar.Når du skriver Java-koden til EJB-metoden, der implementerer denne type operation, skal du angive, at den returnerer ugyldig.
Når du vælger mellem at bruge en EJB eller en Java-klassen backend-komponent, skal du overveje de andre måder, hvorpå din backend-komponent skal bruges. Hvis din backend-komponent bliver almindeligt tilgængeligt som en EJB, skal du bygge den som en EJB. Dette giver dig mulighed for at bruge den samme kode til både din EJB og web service.
Der kræves betydeligt flere ressourcer til at kalde en webservice end at ringe til en EJB. På grund af dette er det almindeligt at oprette alle dine backend-komponenter som EJB'er og derefter tillade eksterne applikationer at få adgang til dine backend-komponenter som webtjenester. Dine egne lokale applikationer, der kører på samme netværk som din WebLogic-server, kan bruge hurtigere EJB-opkaldsmetoden.
Liste 2 viser bønnefilen, der implementerer EJB-backend-komponenten. EJB backend-komponenten er næsten den samme som Java-klassen backend-komponenten. Den væsentligste forskel er den ekstra kode, der bruges til at understøtte EJB.
Listing 2: EJB Backend Component
pakke com. dummies. EJB;
importer javax. EJB. *;
importer java. RMI. *;
importer javax. svinge. *;
public class SampleBean implementerer SessionBean
{
private SessionContext stx;
// Nødvendige metoder, der ikke anvendes af denne type bønner
offentlig tomgang ejbCreate () {}
offentlig tomgang ejbRemove () {}
offentlig tomgang ejbActivate () {}
offentlig tomrum ejbPassivate () {}
// setter til SessionContext
public void setSessionContext (SessionContext ctx)
{
ctx = dette. stx;
}
// prøvemetoden
public String sampleMethod (int num)
kaster RemoteException
{
switch (num)
{
sag 1: retur " En";
sag 2: vend tilbage "to";
sag 3: vend tilbage "tre";
sag 4: vend tilbage "fire";
sag 5: vend tilbage "fem";
sag 6: vend tilbage "seks";
sag 7: returner "syv";
sag 8: vend tilbage "otte";
sag 9: returner "ni";
sag 10: returnere "ti";
standard: returner "noget nummer";
}
}
}
Du skal angive, at bønnen er en statsløs EJB i ejb-krukken. xml-fil, som vises i Listing 3. Du kan bruge mange noder og attributter.
Liste 3: ejb-jar. xml-fil til en backend-komponent
' // java. sol. dk / dtd / EJB-jar_2_0. dtd '>
SampleObject
com. dummies. EJB. SampleHome
com. dummies. EJB. Prøve
com. dummies. EJB. SampleBean
Stateless
Container