Tworzenie usług sieciowych SOAP oraz REST na platformie Java – 3 pytania i odpowiedzi ze szkolenia (wrzesień 2016)

Pytania w tym artykule pojawiły się podczas szkolenia Tworzenie usług sieciowych SOAP oraz REST na platformie Java realizowanego w dniach 12-16.09.2016r.


W jaki sposób w SOAP można przesyłać kolekcje rekordów z danymi?

„Jeśli chodzi o strukturę komunikatów – nie jest to żaden problem: XML Schema pozwala zdefiniować sekwencje nieograniczonej długości, a Java (technologie JAX-WS i JAXB) automatycznie mapuje to na listy obiektów. Wynikiem metody web serwisu może być po prostu List.
Problemem może być fizyczny rozmiar komunikatów, który może wpływać na wydajność albo w ogóle być niemożliwy do obsłużenia w niektórych środowiskach sieciowych. Jeśli trzeba, można już samemu zaimplementować logikę dzielenia wyników na porcje zwracane w kolejnych zapytaniach (podobnie jak w aplikacjach webowych robi się dzielenie wyników wyszukiwania na strony).”

Czy JAX-RS potrafi automatycznie zamienić na format XML/JSON wynik będący kolekcją lub tablicą?

„Zamiana na XML działa dla tablic i list pod warunkiem, że elementy kolekcji są klasy obsługiwanej przez JAXB. Jeśli to nasza klasa, musimy ją oznaczyć @XmlRootElement.

Zamiana na JSON jest zależna od implementacji. W RestEasy (serwery JBoss/WildFly), gdy do obsługi formatu JSON używana jest biblioteka Jackson (obecnie domyślna konfiguracja), translacja jest możliwa i nie wymaga żadnych dodatkowych wysiłków. W innych implementacjach (Jettison, Moxy) często wymagania są takie same jak dla XML (@XmlRootElement).”

Projekt webowy używający technologii JAX-RS. Po skonfigurowaniu w web.xml chronionego dostępu do podkatalogu, serwer nie wpuszcza nawet wtedy gdy jesteśmy zalogowani (wciąż przekierowuje na formularz logowania)?

„Jeśli chroniony podkatalog mieści się w ramach ścieżek obsługiwanych przez aplikację JAX-RS (@ApplicationPath), to niezbędne jest włączenie obsługi ról w implementacji JAX-RS. W przypadku RestEasy trzeba wpisać:


resteasy.role.based.security
true



Ten wpis jest także niezbędny, aby działało @RolesAllowed.”

Zobacz również

W 2024 r. podpisujemy kolejną umowę z Ministerstwem Klimatu i Środowiska na...
Stworzyliśmy Latarnik Wyborczy dla WWF, aby Obywatele mogli zweryfikować która partia jest...
Rozpoczynamy dziś kolejny projekt realizowany dla Ogólnopolskiego Towarzystwa Ochrony Ptaków....