Spring-WS: Cómo acceder a MessageContext desde PayloadEndpoint
Pregunta
¿Qué es el " canónico " ¿Cómo acceder a MessageContext desde un PayloadEndpoint?
Estamos utilizando PayloadEndpoint y AbstractMarshallingPayloadEndpoint que no exponen el MessageContext a sus métodos invoke / invokeinternal, pero ahora tendrán que acceder a los parámetros de solicitud HTTP.
Solución
La forma más fácil en la que puedo pensar: crear un punto final 'wrapper' que implemente MessageEndpoint . Luego puede extraer sus parámetros de solicitud y pasarlos a su punto final real.
Puede almacenar las variables de solicitud en un ThreadLocal para que el punto final original pueda acceder a ellas.
Otros consejos
Alguien en el foro de Spring sugirió utilizar TransportContext para acceder a los parámetros de solicitud HTTP. Esto ayuda a resolver nuestro problema particular, pero no responde a la pregunta original sobre cómo obtener MessageContext.
Otra idea sería introducir un EndpointInterceptor y usa un ThreadLocal. Pero esperaba que hubiera una forma que se sintiera menos como hackear.