Spring websocket: ¿cómo convertir fácilmente la carga útil del mensaje <?> A POJO en ChannelInterceptorAdapter

Tengo una aplicación Spring trabajando con websocket

Puedo hacer la conexión y enviar mensajes, etc.

Los@Controller es

    @MessageMapping("/ws/notification")
    @SendTo("/topic/springframework.topic.websocket.reply")
    public NotificationReply handleNotification(Notification notification) {
     ...
    }

Funciona bien. Observe el tipo de parámetro,Notification, es un objeto personalizado.

Ahora porque para fines de auditoría tengo lo siguiente:

@Component
public class MessageChannelInterceptorAdapter extends ChannelInterceptorAdapter {

    @Override
    public void postSend(Message<?> message, MessageChannel channel, boolean sent) {

        StompHeaderAccessor stompHeaderAccessor = StompHeaderAccessor.wrap(message);

           ....

        switch(stompHeaderAccessor.getCommand()) {
            case CONNECT:
                logger.info("postSend ...");
                logger.info("STOMP Connect");
                break;
            ...
            case SEND:
                logger.info("postSend ...");
                logger.info("STOMP Send");
                printDetails(message, stompHeaderAccessor);
                break;

        ...
    } 


    private void printDetails(Message<?> message, StompHeaderAccessor stompHeaderAccessor) {
        logger.info("   {}", message.toString());
        logger.info("       Payload: {}", message.getPayload());
        logger.info("       Payload (String): {}", message.getPayload().toString());
        logger.info("           Payload (Class): {}", message.getPayload().getClass());

        if(stompHeaderAccessor.getDestination()!=null && stompHeaderAccessor.getDestination().equals("/app/ws/notification")) {
            logger.info("Aprrrr");
            Notification notification = (Notification) message.getPayload();
            logger.info("{}", notification);
        }

Yo obtengo

ERROR o.s.w.s.m.StompSubProtocolHandler - 
Failed to send client message to application via MessageChannel in session 555qe12a. 
Sending STOMP ERROR to client. 
org.springframework.messaging.MessageDeliveryException: 
Failed to send message to ExecutorSubscribableChannel[clientInboundChannel]; 
nested exception is java.lang.ClassCastException: 
[B cannot be cast to com.manuel.jordan.websocket.message.Notification

Entiendo que[B es unbyte[].

Así existe una manera fácil con la @ actuSpring Framework API para hacer un reparto para laMessage<?> carga útil a un POJO específico?.

Recuerde que se aplicará dentro de la clase que se extiende desdeChannelInterceptorAdapter

Respuestas a la pregunta(1)

Su respuesta a la pregunta