WebServices Restful - Jersey e JAXB - Não consigo gerar o xml corretamente

Boa noite pessoal… to precisando configurar um webservice restful… produzindo xml e json…

Criei um projeto para teste antes de implementar no sistema de destino de fato…

Configurei o Jersey… certinho… criei duas entidades uma chamada Banda e outra Integrante…

Criei as classes ilmpas… sem nenhuma anotação JPA… criei um map estático para simular o BD… e OK…

Sem relacionar as classes ainda… fiz os testes… GET, POST, PUT e DELETE funcionando certinho… tanto com XML como JSON…

Relacionei as classes como: Uma Banda para muitos Integrantes.

Eu consigo gerar o XML e JSON certinho de Uma Banda com os seus respectivos integrantes

Chegou o momento do problema… > Não consigo gerar o o xml de um Integrante com sua respectiva banda.

Entidade Banda

@XmlRootElement(name = "Banda")  
@XmlAccessorType(XmlAccessType.NONE) 
public class Banda implements Serializable {

    @XmlElement(name = "id")
    private Integer id;
    
    @XmlElement(name = "nome")
    private String nome;
   
    @XmlElement(name = "anoDeFormacao")
    private Integer anoDeFormacao;
    
    @XmlElementWrapper(name = "integrantesWrapper")
    @XmlElement(name = "integrante")
    private List<Integrante> integrantes;

    public Banda() {
    }

    public Banda(Integer id, String nome, Integer anoDeFundacao) {
        this.id = id;
        this.nome = nome;
        this.anoDeFormacao = anoDeFundacao;
    }

    public Integer getId() {
        return id;
restante da classe

Entidade Integrante

@XmlRootElement(name = "Integrante")  
@XmlAccessorType(XmlAccessType.NONE) 
public class Integrante implements Serializable{
    
    @XmlElement(name = "id")
    private Integer id;
    
    @XmlElement(name = "nome")
    private String nome;
   
    /*
    @XmlTransient se eu usar só essa anotaçào para o atributo gera o XML do integrante sem a banda
    @XmlElement  se eu usar só essa anotação gera referência ciclica no momento de gerar o XML
    @XmlInverseReference(mappedBy = "integrantes") se eu usar essa anotação gera o XML sem a banda e não da referência ciclica, ou seja, o mesmo que o Transiente */
    private Banda banda;

    public Integrante() {
    }

    public Integrante(Integer id, String nome, Banda banda) {
        this.id = id;
        this.nome = nome;
        this.banda = banda;
    }

    public Integer getId() {
        return id;
    }
restante da classe..

Segui diversos tutoriais e documentações mas não consegui fazer funcionar.
Algumas referências que segui:
http://blog.bdoughan.com/2013/03/moxys-xmlinversereference-is-now-truly.html
http://www.eclipse.org/eclipselink/documentation/2.4/moxy/shared_reference_relationships005.htm
http://docs.oracle.com/cd/E23943_01/doc.1111/e25034/jpatoxml.htm

Alguém tem alguma solução ? Utilizando essas tecnologias ?

Ja pensei até em utilizar o XStream… mas estou segurando a onda ainda…

mude essa anotação
@XmlAccessorType(XmlAccessType.NONE)
para
@XmlAccessorType(XmlAccessType.FIELD)

@XmlElementWrapper(name = “integrantesWrapper”)
@XmlElement(name = “integrante”)
private List integrantes;

para
@XmlElement(name = “integrantes”)
private List integrantes;

lembrando se fores usar o nome da tag com o mesmo do atributo ou da classe
não precisa colocar a anotação com o mesmo name.

Isso se chama relação cíclica, e costuma não funcionar em XML, mesmo. Pense no seguinte: uma banda tem vários integrantes. Cada integrante tem uma referência para a banda, que tem vários integrantes. Cada integrante tem uma referência para a banda… e assim por diante. Entendeu o drama?

[]'s

Agora que vi essa relação, não sabia que dava problema tbem.

Poiséh… a tal da referências cíclica… deveria existir já alguma coisa pronta no JAXB que quebrasse o ciclio. por exemplo… com o XStream eu consegui rodar esse exemplo… ele detecta a referência cíclica e mata o ciclo.

Mas gostaria mesmo de resolver só com a especificaçao do rest… JAX e Jersey