2012-06-06 5 views
1

JAXB + Jettison을 사용하여 다중 형식의 RESTful (스키마없는) 서비스를 제공하고 있습니다. @XmlTransient 주석은 내가 직렬화하고 싶지 않은 속성에 유용합니다. 그러나 그것은 충분하지 않습니다.JAXB : 런타임에서 특정 필드를 마샬링에서 제외하는 방법은 무엇입니까?

런타임에 의 특정 필드를 마샬링에서 제외 할 수 있습니까?

마샬링 컨텍스트를 어떻게 든 사전 초기화하고 제외 할 필드를 정의 할 수 있습니까?

현재 사용자의 역할에 따라 개체 필드를 선택적으로 serialize해야합니다.

+2

"런타임시 마샬링에서 특정 필드를 제외하려면 어떻게합니까?" - 당신이 왜 이것을하고 싶은지 우리에게 이유를 제공해 줄 수 있습니까? 선택적 속성을 원한다면 가능합니다. 이는 동일한 목적을 수행합니다. –

+0

안녕하세요 Jeff! 귀하의 의견을 보내 주셔서 감사합니다! 내 질문 (마지막 줄)을 업데이트했습니다. 'optional' 어노테이션 값이 내가 원하는 것을 정말로 알기를 바랍니다. – forker

답변

2

필자는 각기 다른 JAXB 매핑을 사용하여 기울기에서 전체 뚱뚱한 계층 구조로 여러 DTO를 사용하여 비슷한 결과를 얻었습니다. 그러나 이는 소수의 역할에 대해서만 실용적입니다.

MOXy은 런타임 바인딩 변경을 허용하므로 사용 사례에 대한 청구서에 적합합니다.

그러나 서비스 계약을 변경하면주의해야 할 괴상한 라이브 버그가 발생할 수 있습니다.

+0

제프 감사합니다! 예, DTO의'n * roles '는 제가 피하려고하는 것입니다. 실제로 순환 객체 그래프를 해결하기 위해 MOXy를 사용하고 있으며 서브 - 문서를 찾을 때 아무 것도 찾지 못했습니다. 키워드 또는 특정 문서 링크를 제안 할 수 있습니까? – forker

+0

다음은 예입니다. http://blog.bdoughan.com/2011/06/moxy-extensible-models-refresh-example.html –

+0

감사합니다! 분명히이 http://wiki.eclipse.org/EclipseLink/Examples/MOXy/RefreshMetadata는 귀하가 제공 한 공식 사본입니다. – forker

관련 문제