Ich habe einen Webservice, der als Ergebnis der Invokation des Web-Services ein ResponseObject namens " CustomerResponse
" zurückgibt. Wenn ich dieses Objekt "von Grund auf" implementiere, funktioniert alles gut: Meine Implementierung enthält in diesem Fall nur alle benötigten "Simple Types" wie Strings, Integers aber KEINE Objektreferenzen / Assoziationen.
Allerdings wollte ich bestehende Objekte "wiederverwenden". Ich habe in meinem Domain-Modell ein " Customer
" -Objekt, das in der Anwendung selbst verwendet wird. Anstatt das Customer
dummly mehr oder weniger in das "CustomerReponse" -Objekt zu klonen (indem ich manuell alle Mitglieder / Felder manuell neu eingab), wollte ich das CutomerResponse
-Objekt auf dem Customer
-Objekt durch Erweiterung aufbauen:
== & gt; Das Problem ist, dass CustomerResponse
nun einige "interne" Felder enthält, die vom Customer
Object geerbt wurden (wie DatabaseID, Security-Stuff), die ich nicht über den Web-Service bereitstellen möchte. Außerdem (und das ist zur Zeit das Hauptproblem ") Customer
enthält auch eine Menge" Objektreferenzen / Assoziationen "zu anderen Objekten wie Address
, Orders
, History
, die ich auch nicht über den Webservice bereitstellen möchte (Es scheint, dass Apache CXF den gesamten Objektgraphen "evaluiert" und versucht, sie in das ResponseObject aufzunehmen ...)
== & gt; Ist es möglich, WebService-Response-Objekte auf der Basis vorhandener Objekte zu "erweitern" und einige der "Mitglieder / Felder" des erweiterten Supertyps auszuschließen ? (Also möchte ich einige Mitglieder (wie die DatabaseID) und alle "Objektverknüpfungen" wie (Address / Orders / Histroy) ausschließen. Wie kann ich das mit den Anmerkungen und Prozeduren erstellen?
Vielen Dank !! Jan
Die Annotation @XmlTransient wird verwendet, um Elemente auszublenden, die nicht angezeigt werden sollen. Sie sollten in der Lage sein, diese Mitglieder zu kommentieren, und sie werden nicht gebunden sein. Alternativ können Sie Ihren @ XmlAccessorType in XmlAccessType.NONE und nur spezifisch annotierte Methoden werden an XML gebunden.
C # löst dieses Problem mit partiellen Klassen. Ich weiß nicht, wie man das mit Jax-ws macht.
Tags und Links jax-ws