Testen von Micronaut in der nativen Graal-LaufzeitumgebungJava

Java-Forum
Anonymous
 Testen von Micronaut in der nativen Graal-Laufzeitumgebung

Post by Anonymous »

Ich habe eine einfache Micronaut-CRUD-Anwendung, die Kontakte über eine Rest-API verwaltet. Wenn ich die App lokal mit graalvm-ce 21.0.2 ausführe, gibt die API die Kontaktantwort wie erwartet zurück.
Wenn ich die App mit nativer Verpackung (docker-native oder native-image) verpacke, mit:

Code: Select all

mvn clean compile package -Dpackaging=native-image
, meine App gibt die Kontaktentität nicht mit allen Eigenschaften zurück
So sieht das ContactResponse-POJO aus:

Code: Select all

@Builder
public record ContactResponse(
String id,
String name,
String address,
String phoneNumber,
String email,

@JsonFormat(pattern = ObjectMapperConfig.API_DATE_TIME_PATTERN)
LocalDateTime createdAt
)
Und der Aufruf der API (nach dem Packen) gibt Folgendes zurück:

Code: Select all

{
"createdAt": "2025-10-14T12:35:41"
}
Durch das Hinzufügen von @JsonProperty() zu einem Feld wird es in der Antwort angezeigt. Nach einigen Recherchen habe ich herausgefunden, dass der Graalvm-Compiler beim Erstellen der nativen ausführbaren Datei aus Leistungsgründen alle Elemente entfernt, die „nicht benötigt“ werden, einschließlich des reflektierenden Zugriffs.
Da ich in meinem Projekt Jackson Databind verwende, das auf Java Reflection basiert, habe ich dafür gesorgt, dass es funktioniert, indem ich @ReflectiveAccess hinzugefügt habe, um den Compiler zu zwingen, Reflektionsmetadaten für dieses bestimmte Objekt zu generieren (ContactResponse)
Ich würde gerne wissen, ob es eine Möglichkeit gibt, dieses Problem während des Entwicklungsprozesses (und nicht während der Verpackung) zu reproduzieren, sodass meine Tests fehlschlagen, bevor ich sie verpacke und bereitstelle. Meine Tests finden statt, bevor ich die App in eine native ausführbare Datei packe, und können dies daher nicht im Voraus erkennen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post