Obługa JSON w JEE

0

Czy do obsługi plików JSON w JEE powinienem korzystać z Jersey? Tzn inaczej czy jest to dedykowane api od Oracla tak jak DOM czy SAX od Sun. Oczywiście przykład słaby jednak chodzi mi o sam sens. Czy może Jersey ma tylko wykorzystanie przy budowie stron REST i do podstawowej obsługi na plikach JSON powinienem wykorzystać np GSON?

0

Na stronie Jersey jest napisane: "Jersey is the open source, production quality, JAX-RS (JSR 311) Reference Implementation for building RESTful Web services.". Tłumacząc na polski:

  • API to JAX-RS (JSR 311),
  • Jersey to implementacja tego API,

JAX-RS to Java API for RESTful Web Services.

Ja do obsługi JSONa używałem Jacksona: http://jackson.codehaus.org/ - chwalą się, że jest szybki, ma też wiele trybów pracy. GSON ma tę wadę, że oferuje tylko jeden tryb działania - mapowanie na konkretne klasy dziedzinowe, nie ma API strumieniowego i tworzenia drzew a'la DOM.

Jeśli robisz RESTowe Web Service'y w JavieEE to korzystaj z JAX-RS, ale do samej obsługi JSONa możesz użyć czegokolwiek.

0
Wibowit napisał(a):
  • API to JAX-RS (JSR 311),
  • Jersey to implementacja tego API,

JAX-RS to Java API for RESTful Web Services.

Eh przeglądam te info i często nie ogarniam co jest co. Czyli mówiąc np JAXP,JAXB mamy na mysli API??

0

API to "Application Programming Interface", czyli interfejs programowania aplikacji. W skład API na pewno wchodzi specyfikacja, może do tego dochodzić jeszcze kod źródłowy interfejsów (np takich Javowych) wraz z dokumentacją zintegrowaną z tym kodem. Natomiast implementacja API to biblioteka, która zachowuje się (a przynajmniej powinna) tak, jak określa to specyfikacja tego API.

Weźmy dla przykładu OpenGL - jest to API do programowania aplikacji trójwymiarowych. Istnieje wiele klientów tego API, np gier czy programów do tworzenia modeli trójwymiarowych. Jest wiele interfejsów rozszerzających OpenGL - np GLX, WGL, CGL. Jest wiele implementacji OpenGL, składających się ze sprzętu i sterowników do niego, np karty graficzne od AMD lub nVidii lub Intela.

JAXB, JAXP, JAX-RS, JAX-WS to są API, a więc aby ich użyć musisz najpierw znaleźć ich implementacje. Bardzo podobnie jak z OpenGLem - żeby użyć OpenGLa najpierw musisz znaleźć jego implementację, tzn sterownik do twojej karty graficznej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1