Cześć,
Od dłuższego czasu mam pewien problem do rozwiązania. Od razu napiszę, że mój stack technologiczny to Java 1.8 oraz Spring 2. Opiszę mój problem następująco:
Posiadam webservice w Springu, który po wywołaniu przechwytuje w interceptorze wejściowym wartości odczytywane w nagłówkach Soap-owych. Następnie serwis, do którego wysyłam żądanie wykonuje logikę biznesową i wysyła je do innego/innych serwisów nie oznaczonych adnotacją Webservice. Jak wiadomo w takich serwisach nie mogę odczytać już wartości siedzących w kontekście po wywołaniu Webservice. Muszę jednak przekazać jakoś te wartości z interceptora wejściowego do interceptora wyjściowego i tutaj jest problem. W serwisie pośrednim (tym, do którego podpięty jest interceptor wyjściowy) wykonywany jest strzał do bazy w nowym wątku. Aktualnie ten problem rozwiązuje poprzez utworzenie obiektu ThreadLocal w interceptorze wejściowym, odczytanie go przed utworzeniem nowego wątku, po czym utworzenie kolejnego obiektu typu ThreadLocal i odczytanie go w interceptorze wyjściowym. Niestety problem z ThreadLocal jest taki, że powoduje wycieki pamięci. Czy jest jakiś sposób aby zrobić to inaczej? Proszę o pomoc.