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.