Spring-WS: Comment accéder à MessageContext à partir de PayloadEndpoint
Question
Qu'est-ce que le " canonical " moyen d'accéder au MessageContext à partir d'un PayloadEndpoint?
Nous utilisons PayloadEndpoint et AbstractMarshallingPayloadEndpoint qui n'exposent pas le MessageContext à leurs méthodes invoke / invokeinternal, mais doivent désormais accéder aux paramètres de la requête HTTP.
La solution
Le moyen le plus simple auquel je puisse penser: créer un point de terminaison 'wrapper' qui implémente MessageEndpoint . Ensuite, vous pouvez extraire les paramètres de votre requête et les transmettre à votre noeud final.
Vous pouvez stocker les variables de requête dans un ThreadLocal afin que le point de terminaison d'origine puisse y accéder.
Autres conseils
Quelqu'un du forum Spring a-t-il suggéré d'utiliser le TransportContext pour accéder aux paramètres de la requête HTTP. Cela aide à résoudre notre problème particulier, mais ne répond pas à la question initiale: comment obtenir le MessageContext.
Une autre idée serait d’introduire un EndpointInterceptor et utilisez un ThreadLocal. Mais j’espérais qu’il y aurait un moyen de se sentir moins hack.