Innholdsfortegnelse:
- Definere en webtjeneste
- Formålet med din webtjeneste er å tillate eksterne klienter å få tilgang til tjenester du oppgir. Disse tjenestene, kalt komponenten
- I denne delen bygger du en synkron webtjeneste ved hjelp av en vanlig Java-klasse og deretter bruker en statsløs økt EJB. Først må du skrive backend-komponenten. Dette vil enten være en Java-klasse, en statsløs EJB, eller en JMS-metode forbruker.
Video: webutvikling i Oslo [[ Nett2.me ]] PROFESJONELLE WEBTJENESTER - Trenger en Nettside? 2025
En webtjeneste er en ekstern prosedyre tilgjengelig for klienter gjennom TCP / IP, vanligvis ved hjelp av HTTP eller SMTP som transport og XML for koding. Webtjenesten er beskrevet ved hjelp av standard XML-notat, kalt en tjenestebeskrivelse. En webtjeneste oppfyller en enkelt oppgave eller et sett med oppgaver.
Alle detaljer i webtjenesten er skjult fra brukeren, og tjenesten er både maskinvare og programvare uavhengig. Dette oppfordrer programvareutviklere til å bygge applikasjoner som består av små, individuelle tjenester, som deretter kan brukes alene eller i grupper for å utføre enda mer komplekse oppgaver.
Du kan opprette en webtjeneste på to måter: manuelt, gjennom opprettelsen av Java-kilde og konfigurasjonsfiler, eller ved hjelp av et GUI-system kalt WebLogic Workshop. I denne artikkelen oppretter du en webtjeneste manuelt.
Definere en webtjeneste
Før du lager webtjenesten, bør du definere hva den skal gjøre. Dette gir deg mulighet til å konstruere grensesnittet som andre applikasjoner må overholde, hvis de vil kommunisere med din webtjeneste.
Den mest grunnleggende designbeslutningen er hvilken av de to generelle typene webtjenester du vil opprette:
- Synkron tjeneste
- Asynkron tjeneste
A synkron webtjeneste, < som er standard, begynner når webtjenesten mottar en melding. Denne webtjenesten reagerer umiddelbart. Synkron webtjenester er mest nyttige når klientprogrammet krever at dataene returneres fra forespørselen umiddelbart. Et eksempel på denne typen data er gjeldende aksjekurs for et bestemt selskap.
asynkron webtjeneste er asynkron, slik at meldinger kan utveksles fritt mellom klienten og webtjenesten. En melding fra den ene siden forplikter ikke den andre til å sende en tilsvarende melding. Når en klient sender en melding til en asynkron webtjeneste, venter klienten ikke på en melding tilbake fra webtjenesten. Internett-tjenesten kan sende en melding tilbake til klienten på et senere tidspunkt, men ingenting binder iboende denne meldingen til den opprinnelige meldingen som klienten sendte. Asynkrone webtjenester er et godt valg når du sender informasjon som ikke krever et svar. For eksempel kan du sende en melding til flere av serverne dine, og gi dem en ny hilsenmelding som skal vises til brukerne.
Velge og bygge en backend-komponent
Formålet med din webtjeneste er å tillate eksterne klienter å få tilgang til tjenester du oppgir. Disse tjenestene, kalt komponenten
backend, , tar formen av Java-kode.Du kan bygge din backend-komponent som en av følgende: En metode for statsløs økt EJB
- En metode for en Java-klasse
- En JMS-metode forbruker
- WebLogic kan gjøre noen av disse elementene tilgjengelige som en webtjeneste. Dette gjør det praktisk å pakke eksisterende Java-kode som en webtjeneste. Hvis du allerede har opprettet statsløse økt EJB, kan du pakke dem som en webtjeneste. Eller hvis koden din finnes i vanlige Java-klasser, kan du gi deg tilgang til klassen som en webtjeneste. Du kan også bruke JMS messaging som en backend-tjeneste for webtjenesten.
Opprette en synkron webtjeneste
I denne delen bygger du en synkron webtjeneste ved hjelp av en vanlig Java-klasse og deretter bruker en statsløs økt EJB. Først må du skrive backend-komponenten. Dette vil enten være en Java-klasse, en statsløs EJB, eller en JMS-metode forbruker.
Arbeide med en Java-klassekomponent
Du må følge noen regler når du implementerer en webtjenesteoperasjon ved hjelp av en Java-klasse:
Ikke start noen tråder. Denne regelen gjelder for all Java-kode som kjører på WebLogic Server.
- Definer en standard ingen argumentkonstruktor.
- Definer som offentlig metodene for Java-klassen som vil bli eksponert som webtjenesteoperasjoner.
- Du må skrive trådbeskyttet Java-kode fordi WebLogic Server bare opprettholder en enkelt forekomst av en Java-klasse som implementerer en webtjenesteoperasjon, og hver påkalling av webtjenesten bruker samme eksempel.
For et eksempel på å implementere en WebLogic-webtjenesteoperasjon med en Java-klasse, gå til følgende katalog:
WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
hvor
WL_HOME refererer til hovedkatalogen i WebLogic Server-installasjonen. På et Windows-system er denne katalogen vanligvis C: beaweblogic81. Liste 1 viser en Java-klasse som du kan bruke som en backend-komponent. Denne Java-klassen inneholder en enkelt metode, kalt sampleMethod, som aksepterer en int og returnerer en streng.
Oppføring 1: Java Class Backend Component
pakken com. dumminger. EJB;
offentlig klasse SampleBackendComponent
{
public String sampleMethod (int num)
{
bryter (num)
{
tilfelle 1: returner "One";
sak 2: tilbake "to";
sak 3: tilbake "tre";
sak 4: tilbake "fire";
sak 5: tilbake "fem";
sak 6: tilbake "seks";
sak 7: tilbake "syv";
sak 8: tilbake "åtte";
sak 9: retur "ni";
sak 10: tilbake "ti";
standard: returnere "noen nummer";
}
}
}
Arbeide med en statsløs økt EJB backend-komponent
Du kan også velge å bygge din backend-komponent som en statsløs økt EJB. Skrive Java-kode for en statsløs økt EJB for en webtjeneste er ikke annerledes enn å skrive en frittstående EJB.
I webtjenestene. xml distribusjonsbeskrivelse, kan du angi at en webtjenesteoperasjon er en måte, noe som betyr at klientprogrammet som påberoper webtjenesten ikke venter på svar.Når du skriver Java-koden for EJB-metoden som implementerer denne typen operasjon, må du angi at den returnerer tom.
Når du velger mellom å bruke en EJB- eller en Java-klassen-backend-komponent, bør du vurdere de andre måtene som backend-komponenten din skal brukes på. Hvis din backend-komponent blir vanlig tilgjengelig som en EJB, bygg den som en EJB. Dette lar deg bruke samme kode for både EJB og webtjenesten.
Det kreves mye ressurser for å ringe en webtjeneste enn å ringe en EJB. På grunn av dette er det vanlig å lage alle dine backend-komponenter som EJBer og deretter tillate eksterne applikasjoner å få tilgang til backend-komponentene dine som webtjenester. Dine egne lokale applikasjoner, som kjører på samme nettverk som din WebLogic-server, kan bruke den raskere EJB-anropsmetoden.
Liste 2 viser bønnefilen som implementerer EJB-bakdelen. EJB-backend-komponenten er nesten den samme som komponenten for Java-klassen. Hovedforskjellen er den ekstra koden som brukes til å støtte EJB.
Oppføring 2: EJB Backend Component
pakken com. dumminger. EJB;
importer javax. EJB. *;
importer java. RMI. *;
importer javax. svinge. *;
SampleBean implementerer SessionBean
{
privat SessionContext stx;
// Nødvendige metoder, ikke benyttet av denne typen bønne
offentlig tomgang ejbCreate () {}
offentlig tomgang ejbRemove () {}
offentlig tomgang ejbActivate () {}
offentlig tomrom ejbPassivate () {}
// setter for SessionContext
offentlig tomgang setSessionContext (SessionContext ctx)
{
ctx = dette. STX;
}
// Prøvemetoden
Offentlig StringprøveMetod (int num)
kaster RemoteException
{
bryter (num)
{
sak 1: retur " En";
sak 2: tilbake "to";
sak 3: tilbake "tre";
sak 4: tilbake "fire";
sak 5: tilbake "fem";
sak 6: tilbake "seks";
sak 7: tilbake "syv";
sak 8: tilbake "åtte";
sak 9: retur "ni";
sak 10: tilbake "ti";
standard: returnere "noen nummer";
}
}
}
Du må spesifisere at bønnen er en statsløs EJB i ejb-krukken. xml-fil, som vises i Liste 3. Du kan bruke mange noder og attributter.
Liste 3: ejb-jar. xml-fil for en backend-komponent
' // java. sol. com / DTD / EJB-jar_2_0. dtd '>
SampleObject
no. dumminger. EJB. SampleHome
com. dumminger. EJB. Prøve
com. dumminger. EJB. SampleBean
Tilstandsløs
Container
