2.0 KiB
2.0 KiB
📓 Journal-Eintrag: 2026-04-16 - ZNS-Import Serialization Fix
🏗️ Status Quo
Nach dem Deployment der ZNS-First Strategie trat beim Testen der Desktop-App ein Serialisierungsfehler auf:
Serializer for class 'ImportStartResponse' is not found.
🚀 Analyse & Behebung
1. Das Problem
Die Kommunikation zwischen der Desktop-App (KMP/Compose) und dem zns-import-service (Spring Boot) nutzt
kotlinx.serialization auf der Client-Seite.
- Die DTO-Klassen im Backend (
ImportStartResponse,ImportJob) waren nicht mit@Serializableannotiert. - Das Gradle-Plugin
kotlin.plugin.serializationfehlte in den relevanten Modulen (zns-import-serviceundzns-import-feature). - Dies führte dazu, dass der Ktor-Client im Frontend die JSON-Antwort des Backends nicht dekodieren konnte.
2. Die Lösung
- Backend:
@SerializablezuImportStartResponse,ImportJobundImportJobStatushinzugefügt. - Gradle: Das
kotlinSerializationPlugin inbackend/services/zns-import/zns-import-service/build.gradle.ktsundfrontend/features/zns-import-feature/build.gradle.ktsaktiviert. - Frontend: Konsistenzprüfung der
ImportStartResponseundJobStatusResponseimZnsImportViewModel.
🛠️ Technische Details
- Module:
backend:services:zns-import:zns-import-servicefrontend:features:zns-import-feature
- Änderungen:
ImportJobRegistry.kt:ImportJob&ImportJobStatussind jetzt@Serializable.ZnsImportController.kt:ImportStartResponseist jetzt@Serializable.build.gradle.kts: Plugins ergänzt.
🏁 Fazit
Der ZNS-Import-Workflow (Upload -> JobId -> Polling) ist nun technisch stabil und die Typen sind über die Systemgrenzen hinweg serialisierbar.
🧹 [Curator]: Dokumentation des Serialization-Fixes abgeschlossen. 👷 [Backend Developer]: DTOs für API-Kommunikation stabilisiert. 🏗️ [Lead Architect]: Konsistente Nutzung von Kotlinx-Serialization in KMP-Context sichergestellt.