Я пытаюсь преобразовать объект в формат json, но он не работает (я получаю странное исключение переполнения стека).Он отлично работает от объекта к XML.У меня есть простой класс сущности User и другой класс с отношением manyToMany.
@Entity
@XmlRootElement
public class User extends Person {
@Column(length = 60)
private String email;
@Column(name = "PSEUDO", length = 50)
protected String pseudo;
@ManyToMany(fetch = FetchType.LAZY ,targetEntity = Group.class)
@OrderBy("group_name ASC")
protected List<ItGroup> groups = new LinkedList<ItGroup>();
...
getters
}
связанный класс
@Entity
@Table(name = "groups")
public class Group implements ItGroup, Serializable {
...
@XmlTransient
@ManyToMany(fetch = FetchType.LAZY,mappedBy = "groups",targetEntity = User.class)
@OrderBy("email ASC")
private List<ItUser> users = new LinkedList<ItUser>();
...
}
Я поместил аннотации @XmlTransient на геттеры, которые хочу игнорировать.
Вот метод в моем сервисе отдыха, который возвращает пользователя по его нику
@GET
@Path("{nickname}")
@Produces({"application/json"})
// @Produces({"application/xml"})
public ItUser getUserFromPseudo(@PathParam("nickname") String pseudo){
ItUser user = this.daoUser.getUserFromPseudo(pseudo);
return user;
}
Так что он работает с @Produces ({"application / xml"}), а не с @Produces ({"application / json"})
Я использую Glassfish 5, и таким образом модули включены в родительское POM моего приложения, разделенного на разные модули.Дело в том, что я даже не знаю, какую реализацию джерси я использую ... Я читал, что moxy был лучшим, и он мог читать аннотации jaxb.
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
Как я могу это исправитьпроблема?