AXIS i dziwne zachowanie webserwisów

Obecnie jestem w trakcie tworzenia aplikacji, która musi integrować usługi dostarczane przez dwóch różnych dostawców. Niestety – wystawiane WSDLki zmuszają mnie do używania dość antycznej wersji biblioteki AXIS (nie by nowsze wersje były jakoś lepsze). Dziwnym trafem przy strzałach do dostawców za pomocą SoapUI wszystko działało pięknie. Przy wygenerowanym kliencie kodowym – już niekoniecznie.

Co się okazało? AXIS (nie wiem, możliwe, że klienci generowani przez CXF lub  Metro i w specyfikacji zgodnej z JAX-WS robią inaczej) tworzył request w taki sposób, że do adresata wysyłany był request, który zawierał wszystkie elementy XMLa zadeklarowane w WSDLu. Co prawda nie zawierały one wartości, ale i tak właśnie ten fakt był przyczyną dziwnego zachowania usługi. Wystarczyło poprawić ręcznie dostarczonego WSDLa, usuwając z niego niepotrzebne mi elementy (wiem, że delikatnie mówiąc to średnie rozwiązanie). Niestety nie jestem w stanie stwierdzić czy to wina samego dostawcy webserwisu, czy dziwnego zachowania AXISa. Nie wiem i nie chcę wiedzieć.

Leave a comment