Tavaszi távirányítás Hessian és Burlap segítségével
1. Áttekintés
Az előző cikkben „Bevezetés a tavaszi távfelügyeletbe a HTTP-meghívókkal” láttuk, hogy milyen egyszerű olyan kliens / kiszolgáló alkalmazást beállítani, amely a távoli módszer meghívást (RMI) használja Tavaszi távirányítás.
Ebben a cikkben megmutatjuk hogyan Tavaszi távirányítás támogatja az RMI használatát Zsákvászon és Zsákvászon helyette.
2. Maven-függőségek
Mindkét Zsákvászon és Zsákvászon a következő könyvtár biztosítja, amelyet kifejezetten be kell foglalnia a könyvtárba pom.xml fájl:
com.caucho hessian 4.0.38
A legújabb verziót a Maven Central oldalon találja.
3. Hessian
Zsákvászon egy könnyű bináris protokoll a Caucho, a Gyanta alkalmazásszerver. Zsákvászon implementációk léteznek több platformra és nyelvre, a Java is.
A következő alfejezetekben módosítani fogjuk az előző cikkben bemutatott „fülke foglalás” példát, hogy az ügyfél és a szerver kommunikálni tudjon Zsákvászon a helyett Tavaszi távoli HTTP alapú protokoll.
3.1. A szolgáltatás feltárása
Tegyük ki a szolgáltatást az a konfigurálásával RemoteExporter típusú HessianServiceExporter, helyettesítve a HttpInvokerServiceExporter korábban használt:
@Bean (név = "/ booking") RemoteExporter bookingService () {HessianServiceExporter exportőr = új HessianServiceExporter (); exportőr.setService (új CabBookingServiceImpl ()); exportőr.setServiceInterface (CabBookingService.class); visszatérő exportőr; }
Most már elindíthatjuk a szervert és aktívan tarthatjuk, amíg felkészítjük az ügyfelet.
3.2. Kliens alkalmazás
Vezessük be az ügyfelet. A módosítások itt is meglehetősen egyszerűek - le kell cserélnünk a HttpInvokerProxyFactoryBean val,-vel HessianProxyFactoryBean:
@Configuration public class HessianClient {@Bean public HessianProxyFactoryBean hessianInvoker () {HessianProxyFactoryBean invoker = new HessianProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); visszahívó; } public static void main (String [] args) dobja a BookingException {CabBookingService service = SpringApplication.run (HessianClient.class, args) .getBean (CabBookingService.class); out.println (service.bookRide ("13 Seagate Blvd, Key Largo, FL 33037")); }}
Most futtassuk az ügyfelet, hogy a szerverhez csatlakozzon Zsákvászon.
4. Zsákvászon
Zsákvászon egy másik könnyű protokoll a Caucho, alapján XML. Caucho régen abbahagyta a fenntartását, és ehhez támogatása a legújabb tavaszi kiadásokban megszűnt, annak ellenére, hogy már jelen van.
Ezért ésszerűen folytassa a használatát Zsákvászon csak akkor, ha vannak olyan alkalmazásai, amelyek már vannak terjesztve, és amelyeket nem lehet könnyen áttelepíteni egy másikba Tavaszi távirányítás végrehajtás.
4.1. A szolgáltatás feltárása
Tudjuk használni Zsákvászon pontosan ugyanúgy, ahogyan mi használtuk Zsákvászon - csak ki kell választanunk a megfelelő megvalósítást:
@Bean (név = "/ booking") RemoteExporter burlapService () {BurlapServiceExporter exportőr = új BurlapServiceExporter (); exportőr.setService (új CabBookingServiceImpl ()); exportőr.setServiceInterface (CabBookingService.class); visszatérő exportőr; }
Amint láthatja, csak az exportőr típusát változtattuk HessianServiceExporter nak nek BurlapServiceExporter. Az összes beállítási kód változatlanul hagyható.
Ismét indítsuk el a kiszolgálót, és futtassuk tovább, amíg az ügyfélen dolgozunk.
4.2. Ügyfélmegvalósítás
Hasonlóképpen felcserélhetjük Zsákvászon mert Zsákvászon az ügyfél oldalán, változik HessianProxyFactoryBean val vel BurlapProxyFactoryBean:
@Bean public BurlapProxyFactoryBean burlapInvoker () {BurlapProxyFactoryBean invoker = new BurlapProxyFactoryBean (); invoker.setServiceUrl ("// localhost: 8080 / booking"); invoker.setServiceInterface (CabBookingService.class); visszahívó; }
Most már futtathatjuk az ügyfelet, és megnézhetjük, hogyan kapcsolódik sikeresen a kiszolgálóalkalmazással Zsákvászon.
5. Következtetés
Ezekkel a gyors példákkal megmutattuk, hogy ez mennyire egyszerű Tavaszi távirányítás válasszon a különböző technológiák közül a távoli metódus meghívásának megvalósításához, és hogy miként fejleszthet olyan alkalmazást, amely nem ismeri a távoli metódus meghívásának bemutatásához használt protokoll technikai részleteit.
Szokás szerint a forrásokat a GitHubon találja meg, ügyfelekkel mindkettőhöz Zsákvászon és Zsákvászon és a JUnit teszt CabBookingServiceTest.java amely gondoskodni fog a szerver és az ügyfelek futtatásáról is.