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.