Pessoal,
Estamos desenvolvendo uma aplicação que disponibiliza diversos serviços que serão consumidos por outras aplicações internas. Toda a estrutura é baseada em Hibernate, Spring e CXF.
No mapeamento das entidades, temos diversos relacionamentos bidirecionais que não podem ser alterados. Isto está me causando uma enorme dor de cabeça agora que temos que começar a consumir serviços que utilizam estas entidades, pois sempre obtenho a seguinte exceção: javax.xml.ws.soap.SOAPFaultException: Marshalling Error: A cycle is detected in the object graph. This will cause infinitely deep XML [...].Tentei corrigir o problema através da anotação @XmlTransient, mas isto não é solução pois ela vai fazer a transformação desconsiderar o objeto. Imaginem que tenho uma entidade Pedido e outra Item (a primeira tem uma lista da segunda; a segunda conhece a primeira por causa da chave estrangeira). No mesmo serviço, posso solicitar o retorno do Pedido com sua lista de Itens ou apenas o Pedido ou apenas os Itens. Sendo assim, a anotação não resolve nada. (Isto é apenas um exemplo, possuo casos mais complexos.)
Também tentei implementar a interface CycleRecoverable, mas não deu em nada. Alguém já passou por isso? Alguma ideia do que fazer?
Qualquer ideia será muito bem vinda. Obrigado desde já.