Instrumentacja SOAP

Instrumentacja SOAP
Belka
  • Rejestracja:prawie 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:PL
  • Postów:452
1

Hej,
mam problem z instrumentacją requestów do serwisu SOAP. Totalnie nie znam SOAP-a, więc wiem o nim tyle ile nauczyłem się pobieżnie przy szukaniu rozwiązania problemu. Otóż próbuję jakoś taceować requesty do jednego serwisu SOAP. W miejscu gdzie tworzę WebServiceTemplate dodałem inteceptor, w którym tworzę nowy span, wyciągam z niego traceId i spanId, dorzucam je do headera SOAPa, dorzucam je do MDC, ale... nie wiem co zrobić po drugiej stronie. Na Stacku jest jakiś przykład z implementacją OncePerRequestFilter, ale totalnie nie widzę miejsca, gdzie taki Filter jest wołany. Po stronie SOAPa mam - dla mnie - totalnie nieprzystępny kod wygenerowany chyba z WDSLa (mogę się mylić w nomenklaturze - tak jak mówię, jest to dla mnie obce, ale już wyrywam włosy z głowy). W każdym razie moje rozwiązanie nie działa, a coś na wzór tego tutaj: https://stackoverflow.com/a/71403869/8115355 nie wiem gdzie mógłbym dokleić.

Czy komuś z was udało się na potrzeby traceowania instrumentować SOAP serwisy?

edytowany 1x, ostatnio: Riddle
Black007
  • Rejestracja:ponad 21 lat
  • Ostatnio:3 dni
2

OncePerRequestFilter jest częścią Springa, więc jest wstrzykiwany w łańcuch wywołań filtrów.
Wrzuć kod z którym masz problem, bo z opisu trudno coś wywnioskować


"Nie popełnia błędów tylko ten, kto nic nie robi"
TR
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 2 lata
  • Postów:731
0

W miejscu gdzie tworzę WebServiceTemplate dodałem inteceptor, w którym tworzę nowy span, wyciągam z niego traceId i spanId, dorzucam je do headera SOAPa, dorzucam je do MDC, ale... nie wiem co zrobić po drugiej stronie.

Z tego co pamiętam, to trzeba wygenerować klienta/klientów z WSDLa w obu przypadkach - czyli po stronie serwera i po stronie klienta - muszą się zgadzać kontrakty, inaczej klapa. Znaczy się można robić "reverse engineering", ale nie wiem czy gra warta świeczki.


musica curat corpus at animam
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

Ale co ty w zasadzie chcesz zrobić?
Instrumentacja - In the context of computer programming, instrumentation refers to the measure of a product's performance, in order to diagnose errors and to write trace information.[1] Instrumentation can be of two types: source instrumentation and binary instrumentation. https://en.wikipedia.org/wiki/Instrumentation_(computer_programming)

W sensie chcesz dodać dane do logowania? No to musisz dodać to do WLSDa i przegenerowac klasy a nie ręcznie rzeźbić. Albo dodać to do klas serwera z których jest generowany WSLD i przegenorować klienta. Już nie pamiętam za dobrze. Po to są te generatory (tworzace straszny kod), żeby już potem ręcznie nie modyfikować tego co zostało wygenerowane


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.