Forårsfjernbetjening med Hessian og Burlap

1. Oversigt

I den forrige artikel med titlen “Intro to Spring Remoting with HTTP Invokers” så vi, hvor let det er at oprette en klient / serverapplikation, der udnytter fjernmetodeindkaldelse (RMI) gennem Fjederfjernelse.

I denne artikel vil vi vise hvordan Fjederfjernelse understøtter implementeringen af ​​RMI ved hjælp af Hessian og Jute i stedet.

2. Maven-afhængigheder

Begge Hessian og Jute leveres af følgende bibliotek, som du skal medtage eksplicit i dit pom.xml fil:

 com.caucho hessian 4.0.38 

Du kan finde den nyeste version på Maven Central.

3. Hessian

Hessian er en let binær protokol fra Caucho, skaberne af Harpiks applikationsserver. Hessian implementeringer findes for flere platforme og sprog, inklusive Java.

I de følgende underafsnit vil vi ændre eksemplet med "taxa-reservation", der blev præsenteret i den forrige artikel, så klienten og serveren kommunikerer ved hjælp af Hessian i stedet for Forår Remote HTTP baseret protokol.

3.1. Eksponering af tjenesten

Lad os udsætte tjenesten ved at konfigurere en RemoteExporter af typen HessianServiceExporter, erstatter HttpInvokerServiceExporter tidligere brugt:

@Bean (name = "/ booking") RemoteExporter bookingService () {HessianServiceExporter eksportør = ny HessianServiceExporter (); eksportør.setService (ny CabBookingServiceImpl ()); eksportør.setServiceInterface (CabBookingService.class); retureksportør; }

Vi kan nu starte serveren og holde den aktiv, mens vi forbereder klienten.

3.2. Klientapplikation

Lad os implementere klienten. Også her er ændringerne ret enkle - vi skal udskifte HttpInvokerProxyFactoryBean med en HessianProxyFactoryBean:

@Configuration public class HessianClient {@Bean public HessianProxyFactoryBean hessianInvoker () {HessianProxyFactoryBean invoker = new HessianProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); tilbagevenden } offentlig statisk ugyldig hoved (String [] args) kaster BookingException {CabBookingService service = SpringApplication.run (HessianClient.class, args) .getBean (CabBookingService.class); out.println (service.bookRide ("13 Seagate Blvd, Key Largo, FL 33037")); }}

Lad os nu køre klienten for at få den til at oprette forbindelse til serveren ved hjælp af Hessian.

4. Burlap

Jute er en anden letvægtsprotokol fra Caucho, baseret på XML. Caucho holdt op med at vedligeholde det for længe siden, og for det er dets støtte blevet forældet i de nyeste forårsudgivelser, selvom det allerede er til stede.

Derfor bør du med rimelighed fortsætte med at bruge Jute kun hvis du har applikationer, der allerede er distribueret, og som ikke let kan migreres til en anden Fjederfjernelse implementering.

4.1. Eksponering af tjenesten

Vi kan bruge Jute nøjagtigt på samme måde som vi brugte Hessian - vi skal bare vælge den rigtige implementering:

@Bean (name = "/ booking") RemoteExporter burlapService () {BurlapServiceExporter eksportør = ny BurlapServiceExporter (); eksportør.setService (ny CabBookingServiceImpl ()); eksportør.setServiceInterface (CabBookingService.class); retureksportør; }

Som du kan se, ændrede vi netop typen af ​​eksportør fra HessianServiceExporter til BurlapServiceExporter. Al opsætningskoden kan være uændret.

Lad os igen starte serveren, og lad os holde den kørende, mens vi arbejder på klienten.

4.2. Klientimplementering

Vi kan ligeledes bytte Hessian til Jute på klientsiden, skifter ud HessianProxyFactoryBean med BurlapProxyFactoryBean:

@Bean public BurlapProxyFactoryBean burlapInvoker () {BurlapProxyFactoryBean invoker = new BurlapProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); tilbagevenden }

Vi kan nu køre klienten og se, hvordan den opretter forbindelse til serverapplikationen ved hjælp af Jute.

5. Konklusion

Med disse hurtige eksempler viste vi, hvordan det er nemt med Fjederfjernelse at vælge mellem forskellige teknologier til implementering af fjernsynsanvendelse, og hvordan du kan udvikle en applikation, der er fuldstændig uvidende om de tekniske detaljer i den protokol, der bruges til at repræsentere den eksterne ankaldelsesmetode.

Som normalt finder du kilderne på GitHub med klienter til begge Hessian og Jute og JUnit prøve CabBookingServiceTest.java der sørger for at køre både serveren og klienterne.


$config[zx-auto] not found$config[zx-overlay] not found