Zostałem poproszony o obejrzenie procesu kompilacji istniejącej aplikacji opartej na usługach. Posiada kilka modułów opartych na usługach, w których niektóre usługi są świadczone przez stronę trzecią. Wsdls użyte w procesie kompilacji są sprowadzane do kompilacji przez http. Dla zgodności używam maven 3 i axistools-maven-plugin do generowania klas z pliku wsdl.Generowanie powtarzalnej kompresji WSDL
To zaczęło mnie myśleć. Jeśli serwer zdalny nie działa, moja kompilacja się nie powiedzie. Jeśli wsdl zmieni moją kompilację, może również zawieść. Czy tego chcę? Zdalne biblioteki wsdls są wersjonowane w nazwie usługi/wsdl, więc nie należy wprowadzać żadnych istotnych zmian w interfejsach API, ale są one stroną trzecią i nie mogę polegać na tej konwencji.
Czy nie byłoby lepiej pobrać lokalnie wsdl i skompilować go pod kontrolą pliku źródłowego? Miałbym odpowiednią powtarzalną kompilację, bez niebezpieczeństwa niedostępności serwera zdalnego. To nie wydaje się jednak bardzo zwinne. Jeśli przyjmuję to podejście, w jaki sposób poznaję zmiany w zdalnym kodzie wsdl?
Jestem pewna, że nie jestem pierwszą osobą, która zastanawia się nad najlepszą praktyką budowania z wsdls. Czy ktokolwiek może wskazać, który mechanizm jest uważany za najlepszy sposób na stworzenie możliwej do powtórzenia kompilacji z usług generowanych przez zdalne wsdls?
Może być lepiej na stronie programmers.stackexchange.com, ale jest to dobre pytanie. – Qwerky
Czy serwer oferujący klucz wsdl jest tak często używany, że ktoś to zauważył, czy jest to tylko ogólna myśl? Brzmi jak niewiarygodna usługa :) Zazwyczaj bardziej martwię się zmianami niż przestojami. Po prostu ciekawy, bo wspomniałeś o pierwszych przestojach. – Scorpio
Jest całkiem OK, aby zachować kopię WSDL lokalnie (jak wszyscy sugerują).WSDL jest umową dla zdalnej usługi WWW. Jest całkowicie normalne, aby obie strony zachowały kopię umowy, szczególnie w celu rozwiązywania późniejszych sporów, gdy umowa zostanie zmieniona bez konsultacji :-) –