Używam JAX RS do utworzenia usługi sieciowej REST przy użyciu zwykłego @Path, @GET, @Produces({"application/json, "application/xml"})
.JAX RS - JSON i XML Błąd referencyjny cykliczny/cykliczny
Zwracam POJO jako odpowiedź, która jest wysyłana jako JSON lub XML w zależności od typu żądania. Wszystko działało dobrze, dopóki nie dodałem relacji z wieloma osobami do innej jednostki. Związek jest dwukierunkowy.
Używam JBoss AS 7. Dodałem Jackson'a @JsonManagedReference
i @JsonBackReference
, ale bez skutku.
Jak do tego przejść?
I wdrożone moje JAX RS tak: -
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd" version="3.0">
<servlet>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
nie przedłużyć każdą klasę aplikacji lub stosować dowolną klasę aktywator JAXRS.
Ten JBoss's RESTEasy używa Jacksona jako dostawcy JSON, nawet wtedy, gdy nie rozpoznaje adnotacji @JsonManagedReference
?
Czy muszę aktualizować zależności, jeśli tak, to w jaki sposób? A jak naprawić, jeśli żądanie jest z XML, tam też nie powiedzie się w odwołaniu kołowym w JAXB.
Z góry dziękuję!
Widziałeś to pytanie? http://stackoverflow.com/questions/3073364/jaxb-mapping-cyclic-references-to-xml – Tomalak
Dzięki, patrzę na to, ale nadal pozostawia JSON-a na otwartej przestrzeni, nie? – Stuarty
Zgaduję, że musi istnieć analogiczne podejście do JSON. (Nie wiem, ale pytanie brzmiało dość podobnie, więc chciałem je połączyć.) – Tomalak