Proljetno daljinsko uklanjanje Hessianom i Burlapom

1. Pregled

U prethodnom članku pod nazivom "Uvod u proljetno daljinsko korištenje HTTP pozivača" vidjeli smo kako je jednostavno postaviti aplikaciju klijent / poslužitelj koja koristi daljinsko pozivanje metode (RMI) putem Remoting proljeća.

U ovom ćemo članku pokazati kako Remoting proljeća podupire implementaciju RMI korištenja najamnik i Juta umjesto toga.

2. Ovisnosti Mavena

Oba najamnik i Juta pruža sljedeća biblioteka koju ćete morati izričito uključiti u svoj pom.xml datoteka:

 com.caucho hessian 4.0.38 

Najnoviju verziju možete pronaći na Maven Central.

3. hesenski

najamnik je lagan binarni protokol iz Caucho, tvorci Smola aplikacijski poslužitelj. najamnik postoje implementacije za nekoliko platformi i jezika, uključujući i Java.

U sljedećim pododjeljcima izmijenit ćemo primjer "rezervacije kabine" predstavljen u prethodnom članku kako bismo klijenta i poslužitelja komunicirali pomoću najamnik umjesto Proljetni udaljeni HTTP zasnovan protokol.

3.1. Izlaganje Usluge

Izložimo uslugu konfiguriranjem a RemoteExporter tipa HessianServiceExporter, zamjenjujući HttpInvokerServiceExporter prethodno korišteno:

@Bean (name = "/ booking") RemoteExporter bookingService () {HessianServiceExporter izvoznik = novi HessianServiceExporter (); exporter.setService (novi CabBookingServiceImpl ()); exporter.setServiceInterface (CabBookingService.class); povratni izvoznik; }

Sada možemo pokrenuti poslužitelj i održavati ga aktivnim dok pripremamo klijenta.

3.2. Prijava klijenta

Provedimo klijenta. I ovdje su izmjene prilično jednostavne - moramo zamijeniti HttpInvokerProxyFactoryBean s HessianProxyFactoryBean:

@Configuration javna klasa HessianClient {@Bean public HessianProxyFactoryBean hessianInvoker () {HessianProxyFactoryBean invoker = new HessianProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); povratnik koji se poziva; } public static void main (String [] args) baca BookingException {CabBookingService service = SpringApplication.run (HessianClient.class, args) .getBean (CabBookingService.class); out.println (service.bookRide ("13 Seagate Blvd, Key Largo, FL 33037")); }}

Pokrenimo sada klijenta da se poveže s poslužiteljem pomoću najamnik.

4. Burlap

Juta je još jedan lagani protokol iz Caucho, na temelju XML. Caucho prestao ga održavati već davno, a zbog toga je njegova podrška zastarjela u najnovijim izdanjima Proljeća, iako je već prisutna.

Stoga biste trebali razumno nastaviti koristiti Juta samo ako imate aplikacije koje su već distribuirane i koje se ne mogu lako premjestiti na drugu Remoting proljeća provedba.

4.1. Izlaganje Usluge

Možemo koristiti Juta točno na isti način kao i mi najamnik - mi samo moramo odabrati pravilnu provedbu:

@Bean (name = "/ booking") RemoteExporter burlapService () {BurlapServiceExporter izvoznik = novi BurlapServiceExporter (); exporter.setService (novi CabBookingServiceImpl ()); exporter.setServiceInterface (CabBookingService.class); povratni izvoznik; }

Kao što vidite, upravo smo promijenili vrstu izvoznika iz HessianServiceExporter do BurlapServiceExporter. Sav kod za postavljanje može ostati nepromijenjen.

Ponovno, pokrenimo poslužitelj i nastavimo ga raditi dok radimo na klijentu.

4.2. Implementacija klijenta

Možemo se i zamijeniti najamnik za Juta na strani klijenta, presvlačenje HessianProxyFactoryBean s BurlapProxyFactoryBean:

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

Sada možemo pokrenuti klijenta i vidjeti kako se on uspješno povezuje s poslužiteljskom aplikacijom pomoću Juta.

5. Zaključak

Ovim brzim primjerima pokazali smo kako je to lako Remoting proljeća odabrati između različitih tehnologija za implementaciju daljinskog pozivanja metode i kako možete razviti aplikaciju potpuno nesvjesni tehničkih detalja protokola koji se koristi za predstavljanje udaljenog poziva metode.

Kao i obično, izvore ćete pronaći na GitHubu, s klijentima za oboje najamnik i Juta i JUNIT test CabBookingServiceTest.java koji će se pobrinuti za pokretanje i poslužitelja i klijenata.


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