Ho un servizio Web che restituisce come risultato del richiamo del servizio Web un oggetto ResponseObject chiamato "CustomerResponse
". Quando implemento questo oggetto "da zero" tutto funziona perfettamente: la mia implementazione in questo caso contiene solo tutti i "Simple Types" necessari come String, Integers ma NO riferimenti/associazioni oggetto.JAX-WS: Come escludere un "membro/campo" in un oggetto risposta (WS Response) che viene ereditato?
Tuttavia, ciò che volevo fare è "riutilizzare" oggetti esistenti. Ho nel mio modello di dominio un oggetto "Customer
" che viene utilizzato nell'applicazione stessa. Invece di stupidamente più o meno la clonazione del Customer
nell'oggetto "CustomerReponse" (digitando manualmente nuovamente tutti i membri/campi), ho voluto basare l'oggetto CutomerResponse
sul Customer
oggetto per estensione:
class CustomerResponse extends Customer
== > Il problema è che ora CustomerResponse
contiene alcuni campi "interni" ereditati dall'oggetto Customer
(come DatabaseID, Security-Stuff) che non desidero esporre tramite il Web-Service. Inoltre (e questo è attualmente il problema principale ") Customer
contiene anche molti" riferimenti/associazioni oggetto "ad altri oggetti come Address
, Orders
, History
che non voglio esporre tramite il servizio Web. (Sembra che Apache CXF" valuta" l'intera ObjectGraph e cerca di includerli nella ResponseObject ...)
==> e 'possibile 'Extend' Oggetti di risposta WebService basate su oggetti esistenti e in qualche modo escludere alcuni 'utenti/campi' di il supertyp esteso? (Quindi voglio escludere alcuni membri (come il DatabseID) e tutte le "associazioni di oggetti" come (Indirizzo/Ordini/Histroy) .. Come posso realizzare questo, con quali annotazioni e procedure?
Grazie mille !! gen
Ciao KT, grazie mille per la risposta. Beh, in realtà ho provato @XMLTransient ma non ha funzionato in qualche modo. (Tuttavia, Apache CXF sembrava almeno "scansionare" l'objectgraph sul caricamento del Webservice e lanciava alcune eccezioni (dato che My objectgraph ha alcuni enum statici interni identici ...). Proverò ancora e trry XmlAccessType.NONE. ! – jan