Een eenvoudige webservice maken met JAX-WS en JAXB

JAX-WS is een afkorting voor Java API for XML Web Services en is een Java Programming API voor het maken van webservices (speciaal voor SOAP-services) en maakt deel uit van Java EE Platform.

JAXB is een afkorting voor Java Architecture for XML Binding. Dit wordt gebruikt om XML naar Java-object en Java-object naar XML te converteren.

Nu we op de agenda van dit artikel komen, hebben we de volgende taak:

Voor dit artikel gebruik ik NetBeans IDE en je kunt het gratis downloaden van https://netbeans.org/downloads/

Open NetBeans ID E en je moet ofwel de menubalk bovenaan of de projectensectie gebruiken om een ​​nieuw project te maken.

Als u de menubalk gebruikt, klik dan op “ Bestand ” en selecteer “ Nieuw project ” zoals hieronder weergegeven:

Figuur 1 – Nieuw project maken

Selecteer vervolgens “ Java Web ” in de lijst met categorieën en selecteer “ Webapplicatie ” in de lijst met projecten en klik op de knop “ Volgende ” zoals hieronder getoond:

Figuur 2 – Webapplicatie maken

Noem het project “ AccountService ” en klik op de knop “ Volgende ” om door te gaan.

Figuur 3 – Het project een naam geven

Selecteer vervolgens “ GlassFish Server ” als de server voor het uitvoeren van de applicatie en klik op de knop “ Voltooien “.

Figuur 4 – Server selecteren

Hiermee wordt een eenvoudige webtoepassing gemaakt met een eenvoudige HTML-pagina. We maken ons geen zorgen over de gebruikersinterface voor dit project, aangezien we alleen geïnteresseerd zijn in het uitvoeren van de webservice.

Selecteer nu de projectnaam en klik er met de rechtermuisknop op en selecteer “ Nieuw ” en vervolgens “ Web Service … ” zoals hieronder:

Figuur 5 – Webservice maken

Noem de nieuwe webservice “ AccountWebService ” en voer de pakketnaam in en zorg ervoor dat het geselecteerde keuzerondje voor optie “ Create Web Service from Scratch ” is, aangezien we wil je een webservice helemaal opnieuw bouwen en tenslotte op de knop “ Voltooien ” klikken.

Figuur 6 – Voer de naam van de webservice en de pakketnaam in

Nu zou je moeten zien dat er een basiswebservice is gemaakt die er als volgt uitziet:

Figuur 7 – Basis webserviceklasse gemaakt

Nu gaan we enkele wijzigingen aanbrengen in de standaardcode. Voordat we wijzigingen aanbrengen, moeten we een nieuwe Java-klasse maken.

Ga naar “ Bronpakketten ” en vouw “ com.somecompany ” uit (pakketnaam kan verschillen op basis van wat je hebt ingevoerd “en klik met de rechtermuisknop op de pakketnaam en selecteer “ Nieuw ” gevolgd door “ Java Class … “.

Figuur 8 – Java-klasse maken

Voer de klassenaam in als “ Accounts ” en klik op de knop “ Voltooien “. Je zou moeten zien dat er een klas wordt gemaakt. Nu moeten we enkele eigenschappen in de klas toevoegen.

Ik heb velden en getter / setters voor de velden toegevoegd en het klassenbestand ziet er als volgt uit:

Ga nu terug naar de klasse “ AccountWebService.java ” en voer de volgende wijzigingen uit:

Klik nu met de rechtermuisknop op de projectnaam en selecteer “ Opschonen en bouwen “.

Figuur 9 – Opschonen en bouwen

Selecteer nu de projectnaam en klik met de rechtermuisknop en selecteer “ Uitvoeren “.

Figuur 10 – Start het project

Nu zou het een browser moeten openen met de tekst “TODO write content”, aangezien het de standaardtekst was.

Ook in het uitvoervenster zou je het volgende logboek moeten zien:

Navigeer nu naar ‘ Webservices ’ en vouw uit en klik met de rechtermuisknop op ‘ AccountWebService ’ en selecteer de optie ‘ Webservice testen ‘ .

Figuur 11 – Test webservice

Een nieuw tabblad of venster in de browser wordt geopend en ziet er ongeveer zo uit:

Figuur 12 – Webservicetester

Dit is in feite om ons te helpen bij het testen van onze webservice en dit te beschouwen als de client voor de webservice. Voer in het invoervak ​​de klantnaam in en klik op de knop “ getAccountDetails “. Ik heb “ John Sherman ” ingevoerd en op de knop gedrukt.

Figuur 13 – SOAP-verzoek / antwoord

Nu zou u de SOAP-aanvraag en -respons voor de webservice moeten zien. Merk op dat in het antwoord de Java-klasse-eigenschappen de elementen van de antwoordtekst zijn geworden.

Dit bevestigt dat onze service goed werkt en dat we de service kunnen gebruiken. Maar als we observeren, is de hoofdtekst in het antwoord alfabetisch gerangschikt in tegenstelling tot de volgorde van velden in onze Java-klasse. We willen ook niet de eigenschapsnamen weergeven als de elementnamen. Om dat te doen, hebben we hulp nodig van JAXB.

Ga terug naar de klas “ Accounts.java ” en voer de volgende wijzigingen uit:

Importeer de volgende bibliotheken:

Versier vervolgens de klassenaam met de volgende notaties. We vertellen dat de naam van het hoofdelement ‘ CustomerAccount ’ zou zijn en dat de volgorde van de eigenschappen eerst customerName zou moeten zijn, dan retourneert , en dan saldo en tenslotte het accountNummer . Het bevel is met opzet gespecificeerd om te testen of het SOAP-antwoord gehoorzaamt aan het bevel dat we hebben gespecificeerd.

Versier de get-eigenschappen met @xmlElement om de elementnamen te wijzigen zoals hieronder:

De algehele klasse zou er nu als volgt uit moeten zien:

Voer nu opnieuw uit en test de webservice. U zou moeten zien dat de volgorde van de XML-elementen wordt gewijzigd, evenals de naam van de elementen.

Figuur 15 – SOAP-verzoek / antwoord

Dit is oorspronkelijk gepubliceerd op http://www.technicalblogs.sentientmindz.com/2018/02/09/creating-a-simple-web-service-using-jax-ws-and-jaxb/