2010-10-13 28 views
1

J'utilise Axis2 et Eclipse pour créer mon service Web. J'ai créé mon objet de schéma à inclure dans le WSDL, mais je ne veux pas que certains champs soient inclus dans ce processus.Empêche la génération WSDL d'inclure certains champs

La raison en est que ces mêmes objets seront conservés dans la base de données en mode hibernation. J'ai ajouté transitoire dans la déclaration de classe de champ mais je vois encore le champ dans le WSDL !!!

Existe-t-il un moyen d'empêcher l'inclusion de certains champs dans le WSDL?

Merci.

Répondre

1

Utilisation excludeProperties dans services.xml

<parameter name="beanPropertyRules"> 
    <bean class="sample.Address" excludeProperties="street,number" /> 
    <bean class="sample.AddressParent" excludeProperties="zipcode" /> 
</parameter> 

Voir http://wso2.org/library/2893

2

Au lieu d'une virgule pour séparer les excludeProperties utiliser un tuyau ("|")

+0

Pour toute personne intéressée par la raison: Axis2 utilise régulièrement expressions pour faire correspondre la classe et la propriété à la chaîne configurée, elle ne se partage pas seulement sur "," ou autre. Par conséquent, plusieurs propriétés séparées par "," ne fonctionneront plus jamais. Vérifiez l'implémentation: http://grepcode.com/file/repo1.maven.org/maven2/org.apache.axis2/axis2-kernel/1.6.2/org/apache/axis2/deployment/util/BeanExcludeInfo.java# BeanExcludeInfo.isExcludedProperty% 28java.lang.String% 29 –