Wie aktiviere ich die Bean-Validierung (@Valid) für WebSocket-Endpunkte in Jakarta EE?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie aktiviere ich die Bean-Validierung (@Valid) für WebSocket-Endpunkte in Jakarta EE?

by Guest » 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.

Code: Select all

@POST
@Path("/process")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response handlePayload(@Valid EdgeDeviceDTO edgeDeviceDTO) {
// Processing logic
}

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:

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());
}
}
}

Ich verwende import jakarta.validation.Valid;
Wie kann ich für meinen WebSocket-Endpunkt das gleiche Verhalten wie @Valid erreichen?

Top