Wie aktiviere ich die Bean-Validierung (@Valid) für WebSocket-Endpunkte in Jakarta EE?
Posted: 13 Jan 2025, 11:00
Ich arbeite derzeit an einer Jakarta EE-Anwendung, in der ich sowohl REST- als auch WebSocket-Endpunkte habe. Für meine REST-Endpunkte verwende ich @Valid, um eingehende JSON-Nutzlasten zu validieren, und es funktioniert perfekt mit Jakarta Validator.
Dies funktioniert wie erwartet, da alle relevanten Objekte mit den Annotationen @NotNull, @NotEmpty usw. validiert werden.
Für meine Websocket-Verbindung scheint dies jedoch nicht der Fall zu sein zu meiner Forschung existieren:
Ich verwende import jakarta.validation.Valid;
Wie kann ich für meinen WebSocket-Endpunkt das gleiche Verhalten wie @Valid erreichen?
Code: Select all
@POST
@Path("/process")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response handlePayload(@Valid EdgeDeviceDTO edgeDeviceDTO) {
// Processing logic
}
Für meine Websocket-Verbindung scheint dies jedoch nicht der Fall zu sein zu meiner Forschung existieren:
Code: Select all
@ServerEndpoint("/ws/process")
public class WebSocketController {
@OnMessage
public void onMessage(String message, Session session) {
try {
EdgeDeviceDTO edgeDeviceDTO = objectMapper.readValue(message, EdgeDeviceDTO.class);
// Proceed with business logic...
} catch (Exception ex) {
sendError(session, "Error processing message: " + ex.getMessage());
}
}
}
Wie kann ich für meinen WebSocket-Endpunkt das gleiche Verhalten wie @Valid erreichen?