J'ai un WebService que les rendements à la suite de l'Invokation du WebService un ResponseObject appelé " Mais ce que je voulais faire est ». réutiliser » objets existants. J'ai dans mon domaine un modèle « CustomerResponse code>". Lorsque je mets en œuvre cet objet « à partir de zéro » tout fonctionne bien: Ma mise en œuvre dans ce cas, ne contient que tous les nécessaires « Types simples » comme les chaînes, Entiers mais NO Références d'objets / associations
client code> » objet qui est utilisé dans l'application elle-même. Au lieu de clonage bêtement plus ou moins le
client code> dans l'objet « CustomerReponse » (en tapant manuellement à nouveau tous les membres / champs), je voulais fonder
CutomerResponse code> sur la
client code> par extension: p>
class CustomerResponse extends Customer
3 Réponses :
L'annotation @xmlTransient est utilisée pour masquer les membres que vous ne souhaitez pas afficher. Vous devriez être capable d'annoter ces membres et ils ne seront pas liés. Vous pouvez également modifier votre @xmlaccessorType vers Xmlaccessype.none et uniquement des méthodes annotées spécifiquement annotées seront liées à XML. P>
Bonjour KT, merci beaucoup pour votre réponse. Eh bien, j'ai effectivement essayé @xmlTransifiant mais cela ne fonctionnait pas d'une manière ou d'une autre. (Apache CXF sembla néanmoins semblé au moins "ramper" l'objetGraph sur le chargement du service Web et j'ai jeté quelques exceptions près (comme mon objetgraphique a un peu nom de statique intérieure intérieure ...). Je vais essayer de nouveau et va parcourir votre xmlaccessype.none. Tanks. !
C # résout ce problème avec des classes partielles. Je ne sais pas comment le faire avec Jax-Ws. P>
Concernant l'annotation @xmlTransient, j'ai découvert que vous devez le mettre sur la méthode Getter du champ que vous souhaitez masquer.
public class InputBean { private String fieldShow; private transient String fieldHide; public String getFieldShow() { return fieldShow; } public void setFieldShow(String fieldShow) { this.fieldShow = fieldShow; } @XmlTransient public String getFieldHide() { return fieldHide; } public void setFieldHide(String fieldHide) { this.fieldHide = fieldHide; } }
Bon endroit. Vous avez besoin des deux transitoires code> pour votre champ et
@xmlTransient code> pour le getter.
Travaillé pour moi sans transitoire code>
Ne fonctionne pas pour des types booléens. Cependant, si vous annotez votre champ booléen, cela fonctionne.