© Nikodash/Shutterstock.com
Teil 7: Microservices auf Java EE 8 migrieren

Migration eines Taschenrechners


In den letzten Ausgaben haben wir eine hochkomplexe Anwendung, einen Taschenrechner mit teilweise implementierten Grundrechenarten, mit möglichst viel Java EE 7 implementiert. Kaum wurde die Anwendung fertiggestellt, schon steht eine Migration an. Was genau ist bei einer Migration eines Microservice auf Java EE 8 [1] zu berücksichtigen?

Video: Transitions to Microservices Architecture: Challenges and Solutions

Java EE ist abwärtskompatibel. Eine Java-EE-7-(6/5-)Anwendung sollte auf Java-EE-8-Servern funktionieren. Für das Deployment einer Java-EE-7-Anwendung auf einen Java-EE-8-Applikationsserver sind zunächst keine Maßnahmen notwendig.

Für die Verwendung von Java EE 8 API muss jedoch die Version im Maven pom.xml angepasst werden:

<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <version>8.0</version> <scope>provided</scope> </dependency>

Das Java EE 8 API [2] kommt als eine provided-Abhängigkeit, das heißt, sie wird nicht mit ins WAR aufgenommen, sondern kommt lediglich zum Einsatz, um die Anwendung zu kompilieren. Nach einem mvn package und etwa drei Sekunden später ist die Anwendung migriert. Somit gestaltet sich eine Migration ähnlich einfach wie von Java EE 6 nach Java EE 7.

Bisher haben wir den TomEE-Applikationsserver verwendet. TomEE hat uns gut gedient, allerdings implementiert TomEE die Java-EE-8-Spezifikation (noch) nicht vollständig. GlassFish v5 [3] ist die Java-EE-8-Referenzimplementierung, und so unterstützt dieser Server naturgemäß die Java-EE-8-Spezifikation vollständig. Auch Payara 5, eine gepatchte GlassFish v5 und OpenLiberty, die Open-Source-Nanovariante des IBM WebSphere, sind interessante Alternativen mit gutem Java-EE-8-API-Support.

Wir entscheiden uns für die Referenzimplementierung, und so wird das TomEE Docker Base Image aus Docklands mit dem GlassFish v5 [4] ausgetauscht und die Anwendung neu gebaut. Ein Full-Profile-Applikationsserver bringt kaum Laufzeitnachteile im Vergleich zu den M...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang